I have a few years experience in F# programming, and was skimming this book as it was in a recent HumbleBundle that a few of my colleagues from work purchased.
The good part first: It isn't you telling anything that's wrong, and it also explains F# well enough that you can read and start writing F# applications on your own. So it deserves its two stars. But I recommend **avoiding** this book. I hope I have read this book so that you don't need to.
It reads like a marketing powerpoint on the features of F# in book form and separated into chapters. Disappointing.
To be more explicit, in case you read this review with some use-case in mind:
* It is not a quick tutorial. (Too long to get started, bad examples)
* It is not a cheet-cheat. (Too long/fluffy, not correct structure or index, glances over typical problems of C# devs with F#)
* It does not teach functional programming. (Not suited for a C# dev who wants to learn some basics to see if it's worthwhile trying out)
* It doesn't teach programming in general. (Not suited as a real beginners book.)
* It does not explain how F# works. (It provides syntax translations for .NET, and a feature-list, but not the structure of the type-system, type-deduction, etc. -- it will keep you cleaning up after compiler errors, instead of teaching F# in a way that you don't have those in the first place).
* It keeps referring to future sections, and give advice without deep explanations. (This is just bad teaching -- you will be able to learn all later on your own, but in that case, _why read this book at all?_).
* It does not show how to resolve C#/F# interop issues in sufficient detail. (It shows some issues, but it doens't give credit to the practical implications. You will end up with wrong expectations.)
* It religiously shows F# features even when they are not that helpful. (The MailboxProcessor is nice, but most often when you want it, you need a better library.)
To summarize, this book is a bad C# syntax-translation table plus some marketing material.
Maybe I've been spoilt with programming books like "Practical Common Lisp" (Seibel), "CLR via C#" (Richter), or "Effective C++" (Meyers), and so do not appreciate the value of "regular" works. So be it then. I recommend checking out the resources at , start a single project in F#, and use the MSDN reference on all issues. After a week you'll write F# as productive as C#, and after a month or two at most you'll already reap the benefits.