- Amazon Student members save an additional 10% on Textbooks with promo code TEXTBOOK10. Enter code TEXTBOOK10 at checkout. Here's how (restrictions apply)
Professional F# 2.0 Paperback – Nov 9 2010
Special Offers and Product Promotions
To get the free app, enter your e-mail address or mobile phone number.
From the Back Cover
Discover the new functional language from Microsoft: F#
F# is a cutting-edge programming language that offers a number of new features and approaches, making software easier to writeparticularly that software that requires full use of multicore processors. This book shows you how to harness the power of F# and encompasses both the Microsoft .NET Framework and the Visual Studio® 2010 toolset. You'll discover how F# 2.0 serves as a fusion of object-oriented and functional approaches and how this is useful for augmenting other .NET languages. Full of detailed explanations, this reference is key if you are writing new code for complex or multi-processor applications.
Professional F# 2.0:
Explains binding values, control flow and F#'s unique typing system
Demonstrates pattern matching and complex functions
Covers imperative and object programming
Discusses functional design concepts, patterns, and methodologies
Features coverage of F# and the .NET CLR, and F# and C# interaction
Investigates F# and .NET data access through ADO.NET and NHibernate
Provides code for applications that are mathematically and data intensive, and applications that would traditionally be written in multiple languages
Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
wrox.com Programmer Forums
Join our Programmer to Programmer forums to ask and answer programming questions about this book, join discussions on the hottest topics in the industry, and connect with fellow programmers from around the world.
Take advantage of free code samples from this book, as well as code samples from hundreds of other books, all ready to use.
Find articles, ebooks, sample chapters, and tables of contents for hundreds of books, and more reference resources on programming topics that matter to you.
About the Author
Ted Neward is an independent consultant, an authority in Java and .NET technologies, a Microsoft MVP, and in the INETA Speaker's Bureau.
Aaron C. Erickson is a software developer, technology writer, and frequent guest speaker.
Talbott Crowell is a solution architect with 30 years of experience developing software and co-leads the New England F# User Group.
Richard Minerich is a blogger, speaker, and Microsoft MVP and co-leads the New England F# User Group.
Inside This Book(Learn More)
Most Helpful Customer Reviews on Amazon.com (beta)
The book is essentially divided into four sections: a syntax reference, dealing with OO and the rest of the CLR, functional programming, and example applications. All of them are quite readable - each chapter is concise and to the point, but with enough meat to get the message across.
The first two sections make a great reference after you've read them. The third section is a nice overview of FP practices. For seasoned functional programming veterans coming from other languages, its nice to see how elegantly F# accommodates the features that you're used to using. For FP beginners, it's a friendly introduction to higher-order functions, currying and partial application, and immutability. F# adds a new language concept for me - pipelining, that the authors cover in detail.
The final section of the book brings it all together. Example applications include C# interop, an ActiveRecord-like O/RM, XML processing, building an F# website, developing for Silverlight, and WCF. Each example is complete, yet small enough to digest in under 20 pages or so. The examples alone make the book worth purchasing.
F# 2.0 is a book that assumes you are a professional, and as such, does not waste your time with a lot of fluff. I would highly recommend it to anyone interested in FP on the .NET platform.
The book seems good at breaking the F# language down, feature-by-feature, and providing examples of each piece. What's missing is something more holistic. What "Professional F#" gives you is the "how" each little piece of F# works. What it lacks, is the "why?"
Much of the content in the first half will be pretty droll to any seasoned C# developer. Basically a left hand-right hand-type of mapping between C# and F# features. The sections on pattern matching and distributed unions were the only parts in the first half I found at all interesting. I think that, frankly, is this books biggest failing: it fails to be very interesting, despite having a very interesting subject (at least, for someone who spends all day in C# or Java) to work with.
Maybe this book is intended for people who already know the ins-and-outs, and whys-and-why-nots of functional programming, but nothing about .NET and the CLR? Those folks, I imagine, just need a syntax and feature reference, but probably not much expository (or philosophical) commentary. I guess "F# for Haskell programmers" wouldn't sell as well?
This book is basically a very lightweight beginner's guide that skips "advanced" topics like computation expressions, asynchronous workflows, parallel programming, CPS (continuation passing style), threading, and quotations. It's also very light on .Net specific details. WPF and Win Forms are not covered. Details on build/deployment issues and Visual Studio considerations for F# programmers are skimped on. (Given the lack of Visual Studio designers and templates for F# at this time, a "Professional" series book should thoroughly cover how to bridge the gaps.)
The book also has some embarrassing errors in basic information. The quality of the material is very uneven, and the topics don't fit well together. The book also makes disparaging comments about F# that are unfounded and ill-informed.
That said, I heartily recommend the F# language and I think the following authors will help you understand why so many people are excited about F#. For beginners: Pickering. For .Net programmers wanting an F# survey: Novak et al. (Wrox title "Visual Studio 2010 and .Net 4 Six-in-One"; this book does cover the advanced language topics not covered by Wrox's "Professional F# 2.0"). For C# and OOP programmers: Petricek. For those with an FP and/or Computer Science background: Syme et al. (the classic), Petricek, Smith, Harrop.
Also, the free MSDN F# materials are excellent and cover some details not found in printed books. In addition, awesome on-line F# resources abound. For instance, the free on-line book "The F# Survival Guide" gives a better and more comprehensive presentation of F# than this book does.
Summary: there is nothing this book does that other materials don't do better.
Conclusion: not recommended.
I'm not saying this book is only not advanced enough to get started writing F# code, but it is not advanced enough to learn very basic fp concepts. Functional programming is supposed to be about higher order functions like map and fold. The power of these functions is not in adding numbers together but the ability to do so much more. The very definition of currying in this book is inaccurate and the power of currying is not used to add numbers. I am surprised how many different concepts this book teaches with examples of adding numbers. This is not a real world problem. If I wasn't able to see how bad this book was based on my own knowledge of languages like Haskell and Scala, I would think that F# and fp are a complete waste of time.
These authors spend quite a lot of time showing the reader the wrong way to do things. Most of the code in the book is ridiculously over simplified to where it wont show the value of the ideas. Also if you are looking at F# for speed or concurrency, the examples will lead you down some very bad paths.
If you are trying to learn fp concepts or F# syntax, go elsewhere. Every other F# book I've read is better than this. The only one I haven't read is the Don Syme book and I assume it's good since he leads the development of the language.
I wish I could get my money back.
Look for similar items by category
- Books > Computers & Technology > Programming > Languages & Tools
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
- Books > Textbooks > Computer Science & Information Systems > Programming Languages
- Books > Textbooks > Computer Science & Information Systems > Software Design & Engineering