by Michael R. Hansen, Hans Richel
This book is the university textbook that introduced my in the realm of functional programming and F#. As a such, is a very good introduction both to the paradigm and the language, covering all the usual arguments you would expect and some more. F# is a language running on the .NET virtual machine inspired from OCaml languages, so strict purity is not enforced. For this reason, the book has an entire chapter on imperative features of the language, moreover monads and other higher-order constructs are not covered in full length. There is, tough, a chapter on computation expressions, and there monadic parsers are briefly introduced, which is a very nice addition for book aimed at beginners of the functional programming field.
As an introduction to functional programming F# is a very good choice. It is of “noble heritage”, being of the Standard ML family, and its almost flawless interoperability with the .NET ecosystem guarantees a vast amount of supporting libraries for any task at hand. Paired with the WebSharper framework, is also one of the best choices for Web Development.
If you want to dig deeper after having read this book, my suggestion is to read Expert F#.