- Series: Developer Reference
- Paperback: 640 pages
- Publisher: Microsoft Press; 1 edition (June 25, 2013)
- Language: English
- ISBN-10: 0735670269
- ISBN-13: 978-0735670266
- Product Dimensions: 7.4 x 1.4 x 8.8 inches
- Shipping Weight: 2.4 pounds (View shipping rates and policies)
- Average Customer Review: 9 customer reviews
- Amazon Best Sellers Rank: #759,514 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
F# for C# Developers (Developer Reference) 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
Frequently bought together
Customers who bought this item also bought
About the Author
Tao Liu is a Software Design Engineer in Test (SDET) on the Microsoft F# team. A leader in the F# user community and owner of the Seattle, Washington F# user group, Liu gives video talks on F# design pattern for Microsoft Channel 9 and he’s the main contributor to the F# 3.0 sample package on Codeplex.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
The book spends the first third of the time talking about the equivalent code between the two languages. By the end of this section, you can write F# code, but it is going to be C# in F#, not F# code. Meanwhile, you are constantly being shown things and told "this is something we will talk about later", since it doesn't have a direct corollary in C#.
Once you get to the F# specific sections, you breathe a sigh of relief, but even then, you aren't given any indication on how the new features could be used, or how they change the way you develop, so maybe you can use it when doing development, but you are still essentially developing C# in F#.
I'll admit that I stopped reading this book mid way though the second part, when he starts getting into topics that seem very esoteric (such as creating your own data provider), where I am not sure I have a need for that functionality. Meanwhile, I'm going to have to get a new resource to figure out just what F# code is supposed to look like, and what developing in F# actually means.
Don Syme really puts on his marketing hat (and aptly sets the stage for this book) in his brilliant forward by citing an incontrovertible case for F# over C# due to reliability: no more null exceptions! Hear hear!
Rather than see F# repeat all the man-hours of work that went into creating the designers and project types that C# has (and trying to precisely match all their behaviors and quirks); it makes more sense to leverage C# for those things. That is the approach advocated by this book. There are a lot of things you can do in F# that are ugly, infeasible, or ill-advised in C#; but F# needs C# interop because F# is far from self-sufficient.
The book author states (up front) that this book is for experienced C# developers who understand .NET development and OOP concepts. If you don't currently fit those requirements, get them; then get this book. (I've said it before, and I'll say it again: one needs to be better at C# than the typical professional C# developer, as a prerequisite, before you even begin to think about specializing in F#.)
If you are a C# developer and you have (or think you have) no interest in F#, I would still highly recommend taking a look at this book. (Here's another of my maxims: I think one needs to learn Haskell to really understand F#, and one needs to learn F# to really understand C#.) You will learn C# much more deeply from reading this book. (In particular you will really understand C#'s limitations and what functional programming has to offer.)
The OOP discussion in this book is superb: it shows how F# not only allows OOP, but does it far better than C# (and other OOP languages).
The discussion of design patterns is important; many F# books and materials don't have similar coverage.
While this book is very applied, C# friendly, and .Net friendly; C# programmers will also want to look at Real-World Functional Programming: With Examples in F# and C# (Petricek et al.) for its unique insights into C# and F#. (Note: Petricek is also a coauthor in Functional Programming in F#; which is not yet released.)
Conclusion: if you want to use F# for any type of realistic development (i.e. beyond toy problems and experimentation), this book is highly recommended.