10 of 14 people found the following review helpful
5.0 out of 5 stars
Elevates Haskell from a theoretical distraction to a useful tool, 9 Feb 2009
I had been searching for a clear, concise reference for Haskell for years before I discovered this book.
The trouble with most existing Haskell tutorials and texts is that they always approach Haskell from the point of language theory: why Haskell is cool, but always fail to show how to actually improve the quality of your programs using a different paradigm.
This book is different. By insisting on being thoroughly rooted in practicality, it enables discussion of some of Haskell's more abstract corners (Monads and Monad Transformers) from a perspective of why they'd be useful to *me*, and how *I* could use them to solve programming problems that are mucky in other languages.
And for the first time, it all clicked. I at last understand Monads and why they exist. And since no other Haskell reference has ever done that for me, I can't recommend it highly enough.
A previous commenter has mentioned that chapters do tend to depend on previous examples in other chapters, and that makes this book useless as a reference. I disagree: I think there is significant didactic power in the approach of doing it once the hard way, because when concepts like Monads are introduced, it has an opportunity to do it again the right way, and suddenly Haskell's awesome expressive power is laid bare.