Functional programming is perhaps the next big wave in application development. As experienced developers know, functional programming makes its mark by allowing application builders to develop solutions to complicated programming situations cleanly and efficiently. A rich history of functional languages, including Erlang and OCaml, leads the way to F#, Microsoft's effort to bring the elegance and focus of functional programming into the world of managed code and .NET.
With Beginning F#, you have a companion that that will help you explore F# and functional programming in a .NET environment. This book is both a comprehensive introduction to all aspects of the language and an incisive guide to using F# for real-world professional development.
Reviewed by Don Syme, the chief architect of F# at Microsoft Research, Beginning F# is a great foundation for exploring functional programming and its role in the future of application development.
Beginning F# goes through the basics of F#. You'll get an basic understanding of classes(and methods, properties, constructors, etc), list handling, control flow, imperative programming and some F# specific libraries.
However the really interesting F# stuff -- event handling, reactive programming, workflows and message passing -- are only briefly explained. I guess it really is a book for "Beginning F#", but I somehow hoped for more. Lots of pages are spent on showing how to do WinForm GUIs, and listing the WinForm's API, something I think is just a waste of pages.
Pickering claims that you don't even need a programming experience, although experience of either C# or VB.NET "would be nice". I would strongly recommend a working knowledge of C# or VB.NET, or at least an OO language; not much time is spent on explaining such basics.
I'm still looking for the ultimate F# book, the book that expects you to have a firm understanding of C# or VB.NET, and goes through how F# does those things, but most importantly the things only F# offers.
All in all, the book isn't bad, but it really is just for beginning F#, you will soon ask for more.