Learn You a Haskell for Great Good! - Miran Lipovača

GoodReads Summary: Learn You a Haskell for Great Good! is a fun, illustrated guide to learning Haskell, a functional programming language that's growing in popularity. Learn You a Haskell for Great Good! introduces programmers familiar with imperative languages (such as C++, Java, or Python) to the unique aspects of functional programming. Packed with jokes, pop culture references, and the author's own hilarious artwork, Learn You a Haskell for Great Good! eases the learning curve of this complex language, and is a perfect starting point for any programmer looking to expand his or her horizons. The well-known web tutorial on which this book is based is widely regarded as the best way for beginners to learn Haskell, and receives over 30,000 unique visitors monthly.

★★☆☆☆

I have mixed feelings about this book.

It starts really really well, explaining how the language works. And then it falls on the trap of "functional programming" that, instead of focusing on what you can do with the language, it goes lengths talking about monads, monoids, functors and nondeterminism that you keep wondering why it is taking so long explaining function programming instead of focusing on what you can do and when you should use one.

There is even a bad description of "don't do this because it will look horrible when you convert to this other form". Wondering if something will look horrible if you write the same thing in a different form should never be a deterrent for something.

Also, there is the language. Surely, Haskell adds a missing point in Lisp, which are the types, but them it goes off the rails trying to remove parenthesis and the result is a mass of weird symbols, all representing the same thing. And you have, as I mentioned before, different forms to write the same code, which makes the language highly irregular, one trait that really pisses me off in programming languages.