It's hard not to run into Graham Hutton's work when reading about functional programming, so reading a book on Haskell written by him sounded like a good opportunity to learn from a real expert. It turned out to be a good choice - this is definitely the best Haskell book I read so far.
The author's deep understanding of functional programming concepts and Haskell shines through the writing on many occasions. He carefully sets up explanations and examples that build one on top of another, and manages to explain some of the thorniest ideas of Haskell (applicatives and monads, I'm looking at you) very clearly; most importantly, the why of things is often explained, along with some important historical background that sheds some light on the design choices made by the language.
There's even space in this book for a few extended programming examples and exercises, both of which are very important for a programming book. Some of the exercises come with solutions in an appendix - a truly impressive information density for a ~250 page book.
My favorite chapter is Monadic Parsers; parser combinators is a very interesting topic, and I went through several resources that tried to explain it in Haskell. The treatment in this book is much better than anything I read before (it even inspired a blog post to document my understanding).
On the flip side, the last two chapters - on automatically proving programs correct, as well as deriving correct programs from definitions - were puzzling. Felt too academic and somewhat out of place in a book teaching a programming language. I suppose that when you write a book, it's your prerogative to include some of the research topics you're excited about and pitch them to a more general audience :-)
This is the first Haskell book I have read and my very first encounter with the language itself was from reading this book. The author has done an amazing work by his succinct writing that captures the foundations of Haskell through to more advanced components of the language like Functors, Applicatives, and Monads, and more.
The exercises are well posed problems and help extend and test your understanding of the materials covered. I'm now reading Programming Haskell from first principles because I want another text that will show me examples of building [large] projects. The skills I picked up from PiH are no doubt showing to be useful as I read PHffp.
I am delighted that I am learning Haskell, thanks to beauty of the language and to Graham's superior authorship of this text.
This book is a good introduction to Haskell and functional programming. It is probably most useful to those who have little to no prior knowledge in Haskell and functional programming. That is to say: this is a fairly accessible book. It is very well written and has plenty of practice problems. Almost half of the problems are solved at the end of the book. It is also full of great references for those who want to dive deeper in a particular topic.
I don’t normally comment unless something is just beyond terrible and I want to go out of my way and let it be known that it sucks, but I must say I am really satisfied with the book. It’s not cut and dry that you will feel bored reading and it not filled with convoluted explanations and poor examples that don’t work. Nor does it assume previous knowledge like most introductory books to a language do, which makes no sense but hey authors can do what they want.
This book is really fair, builds up chapter by chapter and doesn’t have you jumping around the book to understand it. Whatever is relevant to a topic will be displayed with that topic.
Great introduction in the first 9 chapters to Haskell at a reasonable price. For me, it took time to understand some of the examples, but anything in the book can be worked through and already I am getting the hang of things.