Rating:

I’ve already had some functional programming experience prior to reading this but didn’t look at Haskell yet, so I took a class that turned out to be heavily built upon this book. The first parts weren’t new to me so I largely skimmed them and cannot tell whether someone with no prior experience in FP would find them to be useful or not.

The book then quickly focuses on Haskell specifics, which I was able to pick up quite well. Note that it does not try to be a reference guide, but rather an introduction to a special language. After finishing you will not be able to build full-blown applications but will have some starting point and understanding to start “learning-by-doing”.

There are some chapters in-between that do not deliver new content but work through problems and how you would solve them in Haskell, which were refreshing breaks and allowed the content to sink in.

The only critique I have is that the book shows its “university” style. I guess some of the examples could have been exchanged with more real-world problems, instead of theoretical stuff like a tautology-checker. While I did find it interesting, when I read a book about a programming tool I like to focus on the tool and how I can use it in the real world.

What I also found the be lacking was some stuff about the development environment of Haskell. The book directs you to the GHC compiler and then stops right there. Tools such as cabal or stack, which are vital when actually building applications and are IMO a lot more complicated than “the same thing” as e.g. npm for node or cargo for rust, are not even mentioned.

Overall, this book gives you a nice introduction to Haskell as a language but could drop some theoretical stuff for more practical aspects of programming.