Learn You A Haskell For Great Good! might be the only programming book with a title in Engrish, and it definitely has a unique tone among all the other programming books out there. Learn You A Haskell was written by a 23-year-old Slovenian and covers the Haskell programming language, which is somewhat different from other web programming languages due to its status as a purely functional and a “lazy” functional language. I’ve not worked with language like this before so I started reading Learn You A Haskell as a true beginner.
Author Miran Lipovaca did an excellent job explaining Haskell’s concepts clearly and logically. The chapters and concepts explored built upon one another—what I learned in the previous chapter helped me understand material in the next chapter. Miran’s writing style is witty and peppered with jokes and funny turns of phrase, which I liked at first but got a little tired of as the book progressed. Miran also likes to doodle and Learn You A Haskell has a bunch of random cartoons throughout the book. I do like having more illustrations in programming books such as these, but they are pretty rough and you’ll like them or you won’t.
Fortunately, the quality of Miran’s cartoons doesn’t affect the quality of the book’s programming materials. The code in Learn You A Haskell is solid and functional, and it explains many Haskell concepts very clearly. I am really pleased to see some advanced elements of Haskell explored here, including type classes, input/output (I/O), functors and monads. They are usually hard to comprehend, but Learn You A Haskell dissects them and explains them in good detail. I think Miran could have expanded these advanced sections, but this is a book for beginners.
One thing I would have liked to have seen more of is tutorials and demos. There’s a lot of code in Learn You A Haskell, but they don’t always coalesce into a larger project or tutorial. Some chapters in particular, such as Chapter 9 on I/O, would have really shined if it dug deep into a large project, but Miran didn’t really push it far enough. I’m not too disappointed by this, but it is an opportunity for improvement.
Programmers of any language who want to try something interesting might want to pick up Learn You A Haskell For Great Good! It makes for a quick read even though it’s almost 400 pages, and the Haskell language itself is interesting. I give kudos to Miran for making what could have been an opaque and difficult subject actually quite interesting and fun.