Programming Books C Java PHP Python Learn more Browse Programming Books

Sorry, this item is not available in
Image not available for
Image not available

To view this video download Flash Player


Sign in to turn on 1-Click ordering
More Buying Choices
Have one to sell? Sell yours here
Start reading Expert F# (Expert's Voice in .NET) on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Expert F# (Expert's Voice in .NET) [Hardcover]

by Antonio Cisternino, Adam Granicz, Don Syme
4.1 out of 5 stars  See all reviews (23 customer reviews)

List Price: $84.99
Price: $80.74 & FREE Shipping. Details
You Save: $4.25 (5%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 2 left in stock (more on the way).
Ships from and sold by Gift-wrap available.
Want it tomorrow, April 25? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student


Amazon Price New from Used from
Kindle Edition $38.99  
Hardcover, Bargain Price $32.00  
Hardcover, December 9, 2007 $80.74  
Paperback --  
Sell Us Your Books
Get up to 80% back when you sell us your books, even if you didn't buy them at Amazon. Learn more

Book Description

December 9, 2007 1590598504 978-1590598504 1

Expert F# is about practical programming in a beautiful language that puts the power and elegance of functional programming into the hands of .NET developers. In combination with .NET, F# achieves unrivaled levels of programmer productivity and program clarity. This books serves as

  • The authoritative guide to F# by the designer of F#
  • A comprehensive reference of F# concepts, syntax, and features
  • A treasury of expert F# techniques for practical, real–world programming

While inspired by OCaml, F# isn't just another functional programming language. Drawing on many of the strengths of both OCaml and .NET, it's a general–purpose language ideal for real–world development. F# integrates functional, imperative, and object–oriented programming styles so you can flexibly and elegantly solve programming problems, and brings .NET development alive with interactive execution. Whatever your background, you'll find that F# is easy to learn, fun to use, and extraordinarily powerful. F# will help change the way you think about and go about programming.

Written by F#’s designer and two active contributors, Expert F# is the authoritative, comprehensive, and in–depth guide to the language and its use. Designed to help others become experts, the book gives a thorough introduction to the F# language from quick essentials to in–depth advanced topics such as active pattern matching, aggregate data types and operators, sequence expressions, lazy values, mutable data and side–effects, generics, type augmentations, functional decomposition and code organization.

The second half of the book is devoted to examining the practical application of F#, providing elegant solutions to common programming tasks including user interface implementation, data access, web and distributed programming, symbolic and numerical computations, concurrent programming, testing, profiling, and interoperability with other languages. The latest hot developments in F# and .NET are also addressed, including Active Patterns, implicit class construction, integration with LINQ over relational data, meta programming and useful tips for working with Visual Studio and F# command–line tools.

The worlds foremost experts in F# show you how to program in F# the way they do!

What you’ll learn

  • How to use F# for functional, imperative, and object–oriented programming
  • How to code elegant F# solutions with expert technique and style
  • How to develop Windows, web, graphics, and database applications in F#
  • How to do numerical, concurrent, lexical, and symbolic processing in F#
  • How to interoperate with C and COM

Who this book is for

This book is for anyone interested in state–of–the art .NET programming. Professional programmers will find it engrossing. F# provides invaluable insight into the future of both C# and VB, which are now adopting some (but far from all) of the functional features of F#. Once they learn F#, few feel like returning to either C# or VB. The academic community will find F# the answer to a decades–long prayer: a language suitable for teaching computer science that also excites and empowers students because it can be used not just in the classroom, but also in the real world.

Frequently Bought Together

Expert F# (Expert's Voice in .NET) + Foundations of F# (Expert's Voice in .NET)
Price for both: $127.92

One of these items ships sooner than the other.

Buy the selected items together

Editorial Reviews

About the Author

Antonio Cisternino is a professor in the Computer Science Department of the University of Pisa. His primary research is on scientific computing, meta-programming and domain-specific languages on virtual-machine-based execution environments. He has been active in the .NET community since 2001 and developed VSLab, a Microsoft Visual Studio add-in to support MATLAB-like programming in F# and Visual Studio. He is also author of annotated C#, an extension of C#, and Robotics4.NET, a framework for programming robots with Microsoft�.NET. Cisternino holds a Ph.D. in Computer Science from the University of Pisa.

Adam Granicz is the�chief executive officer�of IntelliFactory, the leading provider of F# training, development and consulting services, and technologies that enable rapid functional, reactive web development. He has over six years of experience applying F# in commercial projects, and works on WebSharper, IntelliFactory's web development platform that offers unrivaled productivity, a uniform programming model based on F#, and the fastest way to develop robust, client-based rich Internet applications. Adam is an active F# evangelist, a regular author in online F# media and speaker at development conferences and industry partners, and serves on the steering committee of the Commercial Users of Functional Programming (CUFP) Workshop, representing the F# segment.

Don Syme is a principal researcher at Microsoft Research, and the main designer of F#. Since joining Microsoft Research in 1998, he has been a seminal contributor to a wide variety of leading-edge projects, including generics in C# and the .NET Common Language Runtime, F# itself, F# asynchronous programming and units of measure in F#. He received a Ph.D. from the University of Cambridge Computer Laboratory in 1999.

Product Details

  • Series: Expert's Voice in .NET
  • Hardcover: 609 pages
  • Publisher: Apress; 1 edition (December 9, 2007)
  • Language: English
  • ISBN-10: 1590598504
  • ISBN-13: 978-1590598504
  • Product Dimensions: 9.4 x 7.2 x 1.5 inches
  • Shipping Weight: 2.5 pounds (View shipping rates and policies)
  • Average Customer Review: 4.1 out of 5 stars  See all reviews (23 customer reviews)
  • Amazon Best Sellers Rank: #1,316,536 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Most Helpful Customer Reviews
18 of 18 people found the following review helpful
4.0 out of 5 stars The Good, The Bad, The (not so) Ugly January 5, 2008
The Good

- Practical.
- High example density.
- Broad coverage of a lot of practical F# topics.
- Good depth on all the important practical stuff.
- I felt like I learned a lot, not only about F#, but about some cool C# features too.
- I felt like I'd be a lot more productive as a programmer if I could master the language.

The (not so) Bad

- Structurally, I initially got lost with some of the more complex examples. And it was straining to page back and forth re-reading things until I grasped the concepts. The density of information in the text sometimes makes it less valuable as a teaching aid and more valuable as a reference.

The (not so) Ugly

- I could not get one of the async examples to actually compile. I had to search the web for some hints to add declarations that seem to have been omitted from either the example code or F# implementation itself. In short, the example code, my development environment, F# itself, of some combination thereof was missing what appears to be an extension method for WebRequest.GetResponseAsync. I had to code it myself. But once I did, it worked! (This might not be a criticism of the book.)
Was this review helpful to you?
21 of 23 people found the following review helpful
5.0 out of 5 stars Perfect companion for your F# adventure! December 3, 2007
This book is the perfect companion to bring along on your adventure into the world of F#! I had the pleasure of proofreading Expert F# several months ago and so, while it just became available at Amazon today, I've already spent many happy hours with it.

F# is a wonderfully expressive and practical language and, at the same time, very elegant. This book will help the reader to apply this newfound power and to appreciate how even the most obscure features all seem to "hang together" so beautifully.

The first half of the book teaches the language with an excellent example-driven approach; making it fun and useful from the start. Separate chapters cover each supported programming paradigm: functional, imperative, object-oriented and language-oriented; along with chapters on solid engineering techniques such as encapsulation and packaging, and working well with other .NET code.

The second half of the book applies the language to various technologies (WinForms, web, database, ...) and to various very interesting domains including lexing and parsing, asynchronous and concurrent programming (a particularly strong suit). My absolute favorites were the symbolic differentiation and propositional logic samples in chapter 12 - these left me in a state of awe! Also, the second half covers more engineering concerns such as testing and debugging, interop and library design.

Throughout the book are sprinkled many little nuggets of wisdom from the authors; especially helpful to those who (like me) are struggling to rationalize experience in OO and imperative programming with the functional mindset.

The book contains an enormous amount of information; an essentially complete coverage of the language. However, it simply can't cover everything.
Read more ›
Was this review helpful to you?
15 of 18 people found the following review helpful
5.0 out of 5 stars Truly worthy of its title January 14, 2008
When a new programming language arrives and manages to make an impact, books about it will certainly appear. However, most often the books will be geared to beginners, to people that is either not very experienced in programming or in the programming paradigms embodied by the language. For a experienced programmer, these books stop right when the fun would begin: the advanced stuff, the corners, the details are left out.

Expert F#, as suggested by its title, is not like this: it is aimed at more experienced programmers. The book will not teach you, for instance, what is functional programming or hammer to your head the best ways to use lists, an ubiquitous data structure in functional languages. But it explains how the things work in F#, so that programmers already familiar with other functional languages will have no trouble picking it up. F# also has object-oriented capabilities, which are explained in a chapter, without however going much deep into OO concepts; the book is about the language, not the paradigms.

And it does this well. Roughly half of the book is about the language itself, the other half are examples of applications and how to use some important libraries. As I was already familiar with OCaml and Haskell, I mostly skimmed through chapters 1 to 4, reading more closely starting with chapters 5 (generic types) and 6 (how objects fit into F#). From chapter 7 (encapsulating and packaging your code) on, the book starts to get really interesting; the next one is about common techniques, and chapter 9 is the best in the first part, explaining language-oriented programming, an area where functional languages really shine.

There are mandatory chapters about Windows Forms (11), Web programming (14) using .
Read more ›
Comment | 
Was this review helpful to you?
8 of 9 people found the following review helpful
5.0 out of 5 stars A great book for any .NET programmer January 17, 2008
This book doesn't just teach you how to program in F#. I teaches you how to be a better .NET programmer. It discusses generics, how to write "generic algorithms," all forms of sequences (and how to elegantly program with them...immensely practical), workflows, LINQ, parsing (I loved this chapter), concurrent programming, Windows get the idea.

However, this book is *packed* with information. So, if you do get this book, and have difficulty...just try to write some code and re-read sections after you do some experimentation. You can't learn F# by reading about it. It is too elegant and subtle for need to actually do it. So, read this book in your computer chair, not your easy chair, and TRY STUFF OUT...TAKE YOUR TIME ...there is a lot of information on each page. You'll be a better programmer in ANY language after going through this book.
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
4.0 out of 5 stars Great when coming from C#
Enjoyed getting exposure to a paradigm that I had not looked at properly before. I have come from a Object Oriented background and looking at a Functional Language inside my... Read more
Published 1 month ago by Mark Pearl
5.0 out of 5 stars Great course on F#
This book is intentionally written to present the best functional programming language available to main street developers yet. Read more
Published on October 24, 2011 by Daniel Marzan
2.0 out of 5 stars Expert F# 2.0 Kindle Addition
The conversion to the Kindle addition was done poorly. Some words are concatenated together and others are split mid-word. I was expecting a better experience then that. Read more
Published on August 16, 2010 by Steven J Yetter
5.0 out of 5 stars F# is amazing!!!
This is a very well written book, by the original creator of F#. Well worth the money.
Published on April 22, 2010 by Andrew Ogden
1.0 out of 5 stars Warning: A newer F# book by Don Syme shipped June 4, 2010
As much as I have enjoyed and learned from this book in the past 2.5 years, at this time I can only rate it one star, because the F# language has changed a lot since this book was... Read more
Published on March 18, 2010 by Seattle Reader
5.0 out of 5 stars Excellent overview of the F# language
Expert F# is an excellent book to get you familiarized with F#. If you've never done any functional programming, this book may not be the best for learning the functional style. Read more
Published on November 14, 2009 by P. Margolin
4.0 out of 5 stars Nice Place to Start Learning F#
As someone who currently works with C# and .net, I was excited to learn about F# and functional programming. Read more
Published on October 5, 2009 by J. Bergman
4.0 out of 5 stars Assumes Experience with Functional Programming
This book states in the beginning that you don't have to know functional programming in order to understand the material. I would argue that this is not true. Read more
Published on June 12, 2009 by Mikael Öhman
3.0 out of 5 stars Study OCaml First!!
F# is basically OCaml for .net. This book covers details of F# for .net. However I felt confused about some syntax of F# which this book does not explain clearly. Read more
Published on June 11, 2009 by Yi C. Chang
5.0 out of 5 stars A solid reference, and a pleasure to read
Reviewer's background - some academic work in functional programming (Lisp), and 23 years as a developer in the aerospace business (Ada, C++, etc). Read more
Published on May 30, 2009 by Stephen Hosking
Search Customer Reviews
Only search this product's reviews

What Other Items Do Customers Buy After Viewing This Item?


Search Customer Discussions
Search all Amazon discussions

Topic From this Discussion
F# and its OCaml roots (was "Don Syme is NOT the inventor of F#")
Hello Don,

thank you for the kind and informative reply.

Anyway, I would like to congratulate you for the implementation of F#, because OCaml seems to be so much different from the underlying dotNET framework (targeted to C# and VB ?).


Martin Jasny
May 4, 2007 by Martin Jasny |  See all 2 posts
Don Syme is NOT the inventor of F#
There are also important differences between OCaml and F#. For starters, the entire object system. The OCaml object system was flatly replaced with a .Net-compatible system to make F# completely interoperable with C#. In that sense, while F# is syntactically rather different, it is a semantic... Read more
Jul 14, 2007 by Amazon Customer |  See all 4 posts
Start a new discussion
First post:
Prompts for sign-in

Look for Similar Items by Category