Book Review: Learn You a Haskell for Great Good!

No Starch Press was kind enough to mail me a review copy of Learn You a Haskell for Great Good!.

Rating: 10/10

Miran Lipovaca has done a fantastic job of writing a book aimed at beginning Haskell programmers. I like his very straightforward writing style of introducing each topic with the minimum of complexity.

As you probably already know the book is available online for free at http://learnyouahaskell.com so the question becomes why purchase the dead tree copy? To be honest I don’t recommend buying a dead tree copy if you have a Kindle.

To summarize there are three ways to read the book:

  • Dead tree
  • EBook
  • Online

My preference in order is the e-book on the Kindle, the dead tree version, and finally the online version. For some reason I don’t like the formatting of the online version as much as either the dead tree version or the ebook. It’s partly because I have a harder time reading books on the computer than either on the Kindle or in paper back.
No Starch did a great job of printing “Learn You a Haskell for Great Good!” on quality paper and the binding is excellent. As with all previous No Starch books I’ve purchased the physical layout and ink quality of the book are both excellent.

The table of contents is:

  • 1. Introduction
  • 2. Starting Out
  • 3. Types and Typeclasses
  • 4. Syntax in Functions
  • 5. Recursion
  • 6. Higher Order Functions
  • 7. Modules
  • 8. Making Our Own Types and Typeclasses
  • 9. Input and Output
  • 10. Functionally Solving Problems
  • 11. Functors, Applicative Functors and Monoids
  • 12. A Fistful of Monads
  • 13. For a Few Monads More
  • 14. Zippers

Miran does an amazing job of keeping each chapter short and interspersing lighthearted comments. The table of contents should be self explanatory, as you can see he covers mostly just the fundamentals of Haskell and ends with Monads. There is the extra chapter on zippers which seems like an afterthought.

Comparing this book to Real World Haskell, they serve slightly different purposes. “Real World Haskell” assumes that you are already reasonably proficient as a programmer whereas this book introduces each topic without assuming much programming background knowledge. Also “Learn You a Haskell for Great Good!” is meant less as a reference text and more for reading from start to end. They are both fantastic books and I highly recommend reading both of them. “Learn You a Haskell for Great Good!” is a gentler introduction to Haskell and I recommend reading it first.

Advertisements