Kindle Price: $35.49

Save $11.50 (24%)

These promotions will be applied to this item:

Some promotions may be combined; others are not eligible to be combined with other offers. For details, please see the Terms & Conditions associated with these promotions.

eTextbook features:
  • Highlight, take notes, and search in the book
  • In this edition, page numbers are just like the physical edition
  • Create digital flashcards instantly
You've subscribed to ! We will preorder your items within 24 hours of when they become available. When new books are released, we'll charge your default payment method for the lowest price available during the pre-order period.
Update your device or payment method, cancel individual pre-orders or your subscription at
Your Memberships & Subscriptions

Buy for others

Give as a gift or purchase for a team or group.
Learn more

Buying and sending eBooks to others

  1. Select quantity
  2. Buy and send eBooks
  3. Recipients can read on any device

These ebooks can only be redeemed by recipients in the US. Redemption links and eBooks cannot be resold.

Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Something went wrong. Please try your request again later.

Programming in Haskell 2nd Edition, Kindle Edition

4.6 4.6 out of 5 stars 271 ratings

Haskell is a purely functional language that allows programmers to rapidly develop clear, concise, and correct software. The language has grown in popularity in recent years, both in teaching and in industry. This book is based on the author's experience of teaching Haskell for more than twenty years. All concepts are explained from first principles and no programming experience is required, making this book accessible to a broad spectrum of readers. While Part I focuses on basic concepts, Part II introduces the reader to more advanced topics. This new edition has been extensively updated and expanded to include recent and more advanced features of Haskell, new examples and exercises, selected solutions, and freely downloadable lecture slides and example code. The presentation is clean and simple, while also being fully compliant with the latest version of the language, including recent changes concerning applicative, monadic, foldable, and traversable types.
Read more Read less

Editorial Reviews

Review

Review of previous edition:
"The best introduction to Haskell available. There are many paths towards becoming comfortable and competent with the language but I think studying this book is the quickest path. I urge readers of this magazine to recommend Programming in Haskell to anyone who has been thinking about learning the language."
Duncan Coutts, The Monad.Reader

Review of previous edition:
"Where this book excels is in the order and style of its exposition … With its ripe selection of examples and its careful clarity of exposition, the book is a welcome addition to the introductory functional programming literature."
Journal of Functional Programming

"The skills you acquire by studying this book will make you a much better programmer no matter what language you use to actually program in."
Erik Meijer, Facebook, from the Foreword

About the Author

Graham Hutton is Professor of Computer Science at the University of Nottingham. He has taught Haskell to thousands of students and received numerous best lecturer awards. Hutton has served as an editor of the Journal of Functional Programming, Chair of the Haskell Symposium and the International Conference on Functional Programming, and Vice-Chair of the Association for Computing Machinery (ACM) Special Interest Group on Programming Languages, and is an ACM Distinguished Scientist.

Product details

  • ASIN ‏ : ‎ B01JGMEA3U
  • Publisher ‏ : ‎ Cambridge University Press; 2nd edition (September 1, 2016)
  • Publication date ‏ : ‎ September 1, 2016
  • Language ‏ : ‎ English
  • File size ‏ : ‎ 4214 KB
  • Simultaneous device usage ‏ : ‎ Up to 4 simultaneous devices, per publisher limits
  • Text-to-Speech ‏ : ‎ Enabled
  • Screen Reader ‏ : ‎ Supported
  • Enhanced typesetting ‏ : ‎ Enabled
  • X-Ray ‏ : ‎ Not Enabled
  • Word Wise ‏ : ‎ Not Enabled
  • Sticky notes ‏ : ‎ On Kindle Scribe
  • Print length ‏ : ‎ 322 pages
  • Page numbers source ISBN ‏ : ‎ 1316626229
  • Customer Reviews:
    4.6 4.6 out of 5 stars 271 ratings

About the author

Follow authors to get new release updates, plus improved recommendations.
Graham Hutton
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Graham Hutton is Professor of Computer Science at the University of Nottingham, where he has taught Haskell to thousands of students and received many awards for his teaching. Graham has also served as an editor of the Journal of Functional Programming, chair of the International Conference on Functional Programming, vice-chair of the ACM Special Interest Group on Programming Languages, board member of the Haskell Foundation, and director of the Midlands Graduate School.

Customer reviews

4.6 out of 5 stars
4.6 out of 5
271 global ratings

Top reviews from the United States

Reviewed in the United States on June 20, 2022
As someone else in the reviews said, the pedagogical density of this book is amazing. What I mean by that, in 250 pages it goes from a gentle hand holding of the basics of Haskell and then goes on to treat a number of advanced computer science concepts. My first reading through the book was like a tourist in a new country, I looked at the chapters on Monadic Parsing and Compiler Correctness and thought them curious and interesting but didn't think much. On my second reading of the book, as I was working through another compilers book, I decided to simultaneous write my compiler in Java and Haskell, I was blown away at how powerful a punch the Monadic Parsing chapter packed in it's mere 15 pages. The author has clearly spent much time and effort in putting this book together to make the exposition simple and clear!

To give a better analogy, the first time I read this book quickly and it was like visiting a Karate class that I wanted to join. I saw the different types of forms that existed that one could practice and found them interesting. My second time, I actually joined the Karate class and put in some time and effort to practice the forms and the experience was very rewarding. It exercised and strengthened my (brain) muscles in many new ways and taught me things my body (brain) didn't think possible before :-)
4 people found this helpful
Report
Reviewed in the United States on December 7, 2017
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 :-)
31 people found this helpful
Report
Reviewed in the United States on September 30, 2022
I have bought many Haskell books, never know that what this little operator <*> do is simply helping currying. It solves any mystery about applicative functor. Other books may spend many pages and examples in explaining this but still confusing. That's why this book is thin. Other concepts are equally well explained in this book, but I don't want to spoil them. Not many exercises, but all of them are very helpful and to the point. GHC changes a bit in these years, Haskell platform is abandoned, check out the -? option and Haskell official pages to see how to install and use them. If you are using win7 you might have a little trouble in installing. Upgrade to win10 or switch to linux.
3 people found this helpful
Report
Reviewed in the United States on December 15, 2019
A very good intro, but confusing because Haskell itself is confusing to run. It took a while for me to get VS Code working with the GHC compiler. And sorting out getting extensions like hlint and hie to work. And then seeing that I had a 20gig of "stack" files. There is a difference between GHC, the compiler, and GHCi, the interactive interface. To compile, you need a "main" function. None of this is discussed in the book, so I had to do much Googling to get anything to work, even the very first examples. Some more help in the book about the actual environment and tools like stack, cabal, etc. would have been good.
11 people found this helpful
Report
Reviewed in the United States on August 20, 2017
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.
7 people found this helpful
Report
Reviewed in the United States on January 14, 2020
I ordered this book in the hope that the code listings in the book would run as is in the Glasgow Haskell Compiler. Two other books on Haskell had code snippets that elicited all sorts of "out of scope" errors which were impossible to interpret and correct leading me to conclude that the code had not been tested against the GHC.. Very frustrating. So far the code has worked and that is a very encouraging sign. Maybe, just maybe, this time it will be possible to learn Haskell in an orderly manner. Here's hoping. Also, the explanations in the book are very clearly written. The author knows whereof he writes and he avoids being "cute" or making "know-it-all" assumptions. That's a great relief.
5 people found this helpful
Report

Top reviews from other countries

Translate all reviews to English
Cristian
5.0 out of 5 stars Buen libro
Reviewed in Mexico on July 10, 2023
En general, material y contenido es excelente. No hay mejor libro para Haskell.
itarato
5.0 out of 5 stars Excellent Haskell book
Reviewed in Canada on July 30, 2019
It has a nice way to explain things and point out why things are useful or not.
stefano
5.0 out of 5 stars Semplice e diretto
Reviewed in Italy on May 6, 2020
Direi essenziale per chi vuole imparare la programmazione funzionale, attraverso Haskell, un linguaggio di programmazione puro (senza side effects).
Raccoglie teoria, esempi ed esercizi.
Consigliato a studenti di informatica/matematica. Richiede poche conoscenze di base.
eric archambault
5.0 out of 5 stars Rigorous
Reviewed in Germany on October 17, 2018
New to programming and to Haskell. This book is dense and get's right to the important stuff. The examples are my favorite part of the book. They are meant to be read and reread and picked apart until you understand everything that is going on. The exercises in the book are enlightening, but I prefer to come up with my own by playing around with the examples. Also, if you have training in formal logic, you will love the section on the tautology checker.
Roberto Martinez
5.0 out of 5 stars La mejor introducción a Haskell que he leido
Reviewed in Spain on April 22, 2018
Es un libro fantástico para iniciarse en la programación con Haskell.

Todos los capítulos siguen una estructura clara, los ejemplos están perfectamente elegidos y contiene ejercicios para que puedas asegurarte de que entiendes todos los conceptos.

El autor no presupone nada sobre la formación del lector (no hace falta ser un matemático ni un programador), lo que lo hace ideal para cualquier tipo de público.

El libro intercala capítulos prácticos con otros teóricos de forma que no se hace muy denso.

Los ejemplos no se apoyan demasiado en conceptos previos por lo que es factible leerlo de forma no secuancial.

Recomendaría este libro a cualquier persona que quiera iniciarse en la programación con Haskell independientemente de sus conocimientos actuales.
One person found this helpful
Report
Report an issue

Does this item contain inappropriate content?
Do you believe that this item violates a copyright?
Does this item contain quality or formatting issues?