
Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows with Prime
Try Prime
and start saving today with fast, free delivery
Amazon Prime includes:
Fast, FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with Fast, FREE Delivery" below the Add to Cart button.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited Free Two-Day Delivery
- Streaming of thousands of movies and TV shows with limited ads on Prime Video.
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
- Unlimited photo storage with anywhere access
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
Buy new:
$44.99$44.99
Ships from: Amazon.com Sold by: Amazon.com
Save with Used - Like New
$17.95$17.95
Ships from: Amazon Sold by: Second Editions Bookshop

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.
Get Programming with Haskell First Edition
Purchase options and add-ons
Get Programming with Haskell introduces you to the Haskell language without drowning you in academic jargon and heavy functional programming theory. By working through 43 easy-to-follow lessons, you'll learn Haskell the best possible way—by doing Haskell!
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the Technology
Programming languages often differ only around the edges—a few keywords, libraries, or platform choices. Haskell gives you an entirely new point of view. To the software pioneer Alan Kay, a change in perspective can be worth 80 IQ points and Haskellers agree on the dramatic benefits of thinking the Haskell way—thinking functionally, with type safety, mathematical certainty, and more. In this hands-on book, that's exactly what you'll learn to do.
About the Book
Get Programming with Haskell leads you through short lessons, examples, and exercises designed to make Haskell your own. It has crystal-clear illustrations and guided practice. You will write and test dozens of interesting programs and dive into custom Haskell modules. You will gain a new perspective on programming plus the practical ability to use Haskell in the everyday world. (The 80 IQ points: not guaranteed.)
What's Inside
- Thinking in Haskell
- Functional programming basics
- Programming in types
- Real-world applications for Haskell
About the Reader
Written for readers who know one or more programming languages.
About the Author
Will Kurt currently works as a data scientist. He writes a blog at www.countbayesie.com, explaining data science to normal people.
Table of Contents
Lesson 1 Getting started with Haskell
Unit 1 - FOUNDATIONS OF FUNCTIONAL PROGRAMMING
Lesson 2 Functions and functional programming
Lesson 3 Lambda functions and lexical scope
Lesson 4 First-class functions
Lesson 5 Closures and partial application
Lesson 6 Lists
Lesson 7 Rules for recursion and pattern matching
Lesson 8 Writing recursive functions
Lesson 9 Higher-order functions
Lesson 10 Capstone: Functional object-oriented programming with robots!
Unit 2 - INTRODUCING TYPES
Lesson 11 Type basics
Lesson 12 Creating your own types
Lesson 13 Type classes
Lesson 14 Using type classes
Lesson 15 Capstone: Secret messages!
Unit 3 - PROGRAMMING IN TYPES
Lesson 16 Creating types with "and" and "or"
Lesson 17 Design by composition—Semigroups and Monoids
Lesson 18 Parameterized types
Lesson 19 The Maybe type: dealing with missing values
Lesson 20 Capstone: Time series
Unit 4 - IO IN HASKELL
Lesson 21 Hello World!—introducing IO types
Lesson 22 Interacting with the command line and lazy I/O
Lesson 23 Working with text and Unicode
Lesson 24 Working with files
Lesson 25 Working with binary data
Lesson 26 Capstone: Processing binary files and book data
Unit 5 - WORKING WITH TYPE IN A CONTEXT
Lesson 27 The Functor type class
Lesson 28 A peek at the Applicative type class: using functions in a context
Lesson 29 Lists as context: a deeper look at the Applicative type class
Lesson 30 Introducing the Monad type class
Lesson 31 Making Monads easier with donotation
Lesson 32 The list monad and list comprehensions
Lesson 33 Capstone: SQL-like queries in Haskell
Unit 6 - ORGANIZING CODE AND BUILDING PROJECTS
Lesson 34 Organizing Haskell code with modules
Lesson 35 Building projects with stack
Lesson 36 Property testing with QuickCheck
Lesson 37 Capstone: Building a prime-number library
Unit 7 - PRACTICAL HASKELL
Lesson 38 Errors in Haskell and the Either type
Lesson 39 Making HTTP requests in Haskell
Lesson 40 Working with JSON data by using Aeson
Lesson 41 Using databases in Haskell
Lesson 42 Efficient, stateful arrays in Haskell
Afterword - What's next?
Appendix - Sample answers to exercise
- ISBN-101617293768
- ISBN-13978-1617293764
- EditionFirst Edition
- PublisherManning
- Publication dateApril 2, 2018
- LanguageEnglish
- Dimensions7.38 x 1.3 x 9.25 inches
- Print length616 pages
Frequently bought together

Customers who viewed this item also viewed
Editorial Reviews
About the Author
Product details
- Publisher : Manning; First Edition (April 2, 2018)
- Language : English
- Paperback : 616 pages
- ISBN-10 : 1617293768
- ISBN-13 : 978-1617293764
- Item Weight : 2.24 pounds
- Dimensions : 7.38 x 1.3 x 9.25 inches
- Best Sellers Rank: #1,453,144 in Books (See Top 100 in Books)
- #90 in Functional Software Programming
- #472 in Object-Oriented Design
- #1,647 in Software Development (Books)
- Customer Reviews:
About the author

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonCustomers say
Customers find the book provides a decent overview of Haskell basics, with one review noting it explains concepts in depth. They appreciate its programming content, with one customer mentioning they were able to write several useful programs after reading it.
AI-generated from the text of customer reviews
Select to learn more
Customers find the book comprehensible, with one mentioning it provides a decent overview of basics and explains concepts in depth, while another notes it includes good exercises and solutions.
"...Manning: I love the cover art. Seriously! It is very apropos and beautiful (for both this Haskell book and the recent Manning F# book)...." Read more
"...This is a fantastic reference for those who want to learn the concepts while also making workable programs." Read more
"...This book did the trick. The pace is right and includes good exercises/solutions...." Read more
"...you how to do useful things with Haskell while still explaining important concepts in depth." Read more
Customers appreciate the programming content of the book, with one mentioning they were able to write several useful programs.
"...I did nearly every exercise in this book and was able to write several useful programs, outside of the content of this book, for myself in Haskell...." Read more
"...this is a very clear, cohesive introduction to Haskell and functional programming that slowly increases in complexity over the course of the book...." Read more
"...This book is one of the best on Haskell, whether you're a newbee or a some-dirty-hands programmer." Read more
Reviews with images

Lot's of errors and some inconsistencies. Seems rushed.
Top reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on May 18, 2018This book does a lot to make Haskell accessible to the widest possible audience.
It is suitable for beginners, and is highly recommended as a first book on Haskell. It is also suitable for use as a course textbook (given the exercises and solutions provided in it). It is very easy to read and understand, thus making the material very accessible, and removing the mystique of Haskell. It also has a very balanced and comprehensive coverage of the topic.
This book also has a lot to teach about Computer Science in general; hence is recommended in order to make people better programmers (regardless the technology one must use).
While the book is above average in its grammar, clarity, and lack of typos; I still marked up my book with a goodly number of typos.
The discussion on HINQ (a Haskell version of Microsoft's LINQ (Language Integrated Query), which is a general purpose query language) is very worthwhile and really showcases the types of problems that can be easily addressed by Haskell's expressive power.
Manning: I love the cover art. Seriously! It is very apropos and beautiful (for both this Haskell book and the recent Manning F# book).
I hope to see more titles from this author: he writes well, and is gifted at being able to stand back and answer the proverbial question: "What does the sum total of these disparate parts mean?".
Here are some things that could make this book even better: description of how to use Visual Studio Code as an IDE for Haskell, and examples of GUI front ends for Haskell applications (using web technologies, and optionally using desktop technologies). Coverage of these topics would do even more towards making Haskell more accessible and viable to a wider audience.
Good job!
- Reviewed in the United States on July 1, 2021I've tried to learn Haskell three or four times and none of the other tutorials clicked. I did nearly every exercise in this book and was able to write several useful programs, outside of the content of this book, for myself in Haskell. This is a fantastic reference for those who want to learn the concepts while also making workable programs.
- Reviewed in the United States on April 5, 2018I, too, have been ambivalent about tackling Haskell, because others have told me it is difficult to learn. And Haskell's central approach is functional programming, another not-so-easy topic. The author, Will Kurt, notes: "As a language, Haskell commits fully to [John] Backus's dream [of liberating programming 'from the von Neumann style'] and doesn't allow you to stray back to more-familiar styles of programing."
Kurt also states that "[o]ne of the most frustrating issues for newcomers to Haskell is that basic I/O in Haskell is a fairly advanced topic. Often when new to a language, it's a common practice to print output along the way to make sure you understand how a program works. In Haskell, this type of ad hoc debugging is usually impossible. It's easy to get a bug in a Haskell program, along with a fairly sophisticated error, and be at an absolute loss as to how to proceed."
That certainly happened to me when I first started doing this book's exercises and kept trying to jump around inside the book. "Get Programming with Haskell" is packed with focused topics, short code examples and short programs, plus numerous exercises to help stretch and strengthen your new knowledge. If you are a Haskell beginner, you really, really need to go through this book page by page, front to back, like a college textbook in a hard class where the professor keeps emphasizing, "Anything and everything in this book can be on the final exam."
Will Kurt's book is well-written and well-structured, and it is heavily illustrated with short code listings that demonstrate specific points. He is an excellent ambassador for Haskell, and he is a good teacher. (At the back of his book, he's also an advocate for several other functional programming languages, including Clojure and F#, plus two languages that have even more powerful type systems than Haskell: Idris and Liquid Haskell. But learn Haskell first!)
A lot of work clearly went into the creation of this book. As a rule, I generally don't (five-star) "love" programming books the way I (five-star) "love" a good novel, short story collection, poetry colletion or nonfiction work. But please consider my four-star review here as four and a half stars. I am enjoying the challenge of learning how to work in Haskell.
(My thanks to Manning Books for providing an early reading copy.)
- Reviewed in the United States on October 16, 2019Similar to other reviewers, I tried and gave up learning Haskell twice.
This book did the trick. The pace is right and includes good exercises/solutions.
The way the author writes makes you want to code along with him.
I am only halfway through and already I know enough to have written some
practical Haskell for work purposes (I'm an Electrical Engineer).
One program was used to generate device config files. The other was a
custom implementation of complex numbers/phasors.
My other two attempts were with online tutorials which were either
too easy and didn't get you anywhere that practical or too hard and had
you making parsers when you barely even knew what "map" did yet.
- Reviewed in the United States on August 23, 2023A good balance between practical and theoretical. It teaches you how to do useful things with Haskell while still explaining important concepts in depth.
Top reviews from other countries
- Jerome LanteriReviewed in France on December 20, 2018
4.0 out of 5 stars easy to understand
Good learning curve with this book. All is clear, examples are good choice. perfect for beginners
- MattemattReviewed in the United Kingdom on November 10, 2020
5.0 out of 5 stars Great book for learning haskell
I already know how to program and wanted to branch out to Haskell to learn and get comfortable with the functional programming paradigm. I have already written a fair amount of Scala which allows for functional programming, but I felt I kept falling back on the object orientated paradigm every time.
Overall I thought this book was an excellent introduction for me. It introduces new topics in a logical order, covers technical details, and gives real world examples of use cases. I found its explanation of the notoriously confusing Monads to be very good (though I did need to spend a little extra time outside of the book and its exercises getting my head around it).
I feel it has taught me how to approach problems like a Haskell programmer, as well as teaching me the syntax. It has lots of little exercises spread through each chapter to continuously ensure you are understanding, and then the end of each chapter contains summary questions which really consolidate your understanding.
Another thing I do like is that the book touches on Haskells application in software engineering - build tools (cabal), REPL (ghci), and testing.
The book isn't without its faults. The are certainly some mechanical omissions like operator precedence and the indentation rules of Haskell. Indentation seems to be a big part of Haskell and it is never explicitly covered, though I did find by just working through the book I have a general grasp on how everything should be formatted to work correctly.
There are also a few syntax errors in the examples (though this is a very small number). Luckily they are simple errors towards the end of the book so by the time you encounter them they should be very obvious and it shouldn't trip you up. Overall I feel that these few small complaints don't cause enough hassle to not rate the book at 5 stars.
-
DrumnuggetReviewed in the Netherlands on February 28, 2023
3.0 out of 5 stars Prima boek ondanks de soms weel heel slordige foutjes
Je moet zo nu en dan wel even in het forum op de website kijken naar de errata van het boek, want er zijn behoorlijk wat slordige en soms zelf grote fouten in het boek. Maar daar is omheen te werken. De lessen zijn wel leuk en de schrijver legt bepaalde basisconcepten goed uit. Stapsgewijs wordt je steeds bekender met termen die sommige andere boeken niet zo goed weten uit te leggen. Dus ik zou het boek wel aanraden, maar, je moet wel op het forum van de site van de uitgever controleren welke fouten er in de hoofdstukken staan. Haskell is wel een leuke programmeertaal. Dit boek draagt daaraan bij.
-
GianlucaReviewed in Italy on November 6, 2018
5.0 out of 5 stars Eccellente
06.11.2018
Ho acquistato questo libro per imparare Haskell.
Velocità di creazione e spedizione dell'ordine eccellente con Amazon Prime.
Ordinato verso domenica pomeriggio/sera ( 04.11.2018 ), ricevuto verso le 14.00 del giorno dopo ( 05.11.2018 ).
Libro acquistato come nuovo, venduto e spedito da Amazon.
Copertina flessibile.
Lieve ammaccatura sulla copertina, ma niente di ché.
A una prima sfogliata pagine impeccabili senza segni o "orecchie".
Allego foto.
Gli argomenti trattati sono:
1. Fondamenti della programmazione funzionale e funzionalità unica del linguaggio Haskell
2. Haskell type system e Haskell type class system
3. Monoid, Semigroup, Maybe e come combinare i tipi di Haskell
4. I/O in Haskell: programmi a linea di comando, lettura/scrittura file di testo, Unicode data, manipolazione dati binari
5. Functor, Applicative e Monad
6. Il sistema dei moduli in Haskell e il tool stack per creare e mantenere progetti in Haskell
7. Gestione errori in Haskell, eseguire richieste HTTP verso servizi REST, JSON parsing con la libreria Aeson e come impostare un'applicazione che parla con un database
Gianluca
GianlucaEccellente
Reviewed in Italy on November 6, 2018
Ho acquistato questo libro per imparare Haskell.
Velocità di creazione e spedizione dell'ordine eccellente con Amazon Prime.
Ordinato verso domenica pomeriggio/sera ( 04.11.2018 ), ricevuto verso le 14.00 del giorno dopo ( 05.11.2018 ).
Libro acquistato come nuovo, venduto e spedito da Amazon.
Copertina flessibile.
Lieve ammaccatura sulla copertina, ma niente di ché.
A una prima sfogliata pagine impeccabili senza segni o "orecchie".
Allego foto.
Gli argomenti trattati sono:
1. Fondamenti della programmazione funzionale e funzionalità unica del linguaggio Haskell
2. Haskell type system e Haskell type class system
3. Monoid, Semigroup, Maybe e come combinare i tipi di Haskell
4. I/O in Haskell: programmi a linea di comando, lettura/scrittura file di testo, Unicode data, manipolazione dati binari
5. Functor, Applicative e Monad
6. Il sistema dei moduli in Haskell e il tool stack per creare e mantenere progetti in Haskell
7. Gestione errori in Haskell, eseguire richieste HTTP verso servizi REST, JSON parsing con la libreria Aeson e come impostare un'applicazione che parla con un database
Gianluca
Images in this review
-
Cliente AmazonReviewed in Spain on November 20, 2018
4.0 out of 5 stars Claro y con ejemplos.Conciso y gradual
Te introduce en Haskell paso a paso , de forma clara.Y en PFuncional.Con ejemplos.
No se desvía del tema.Hay que tener alguna idea anterior.
Muy bien