Print List Price: | $44.99 |
Kindle Price: | $34.99 Save $10.00 (22%) |
Sold by: | Simon & Schuster Digital Sales Inc. Price set by seller. |
Your Memberships & Subscriptions

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required. Learn more
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 1st Edition, Kindle Edition
Price | New from | Used from |
Paperback, Illustrated
"Please retry" | $33.29 | $29.55 |
- eTextbook
$34.99 Read with Our Free App - Paperback
$34.99 - $39.31
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.)
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.
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.
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-13978-1617293764
- Edition1st
- PublisherManning
- Publication dateMarch 6, 2018
- LanguageEnglish
- File size3896 KB
Customers who read this book also read
Editorial Reviews
About the Author
Product details
- ASIN : B09782QDFV
- Publisher : Manning; 1st edition (March 6, 2018)
- Publication date : March 6, 2018
- Language : English
- File size : 3896 KB
- 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 : 616 pages
- Best Sellers Rank: #1,212,410 in Kindle Store (See Top 100 in Kindle Store)
- #157 in Functional Software Programming
- #232 in Object Oriented Design
- #675 in Information Technology
- Customer Reviews:
About the author

Discover more of the author’s books, see similar authors, read author blogs 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 Amazon
Reviewed in the United States on July 10, 2021
-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
The progressive reveal of language features and the underlying concepts are haphazard, and extremely complex ideas are presented without preparing the reader with the necessary underlying conceptual underpinnings completely missing the true essence of functional programming and Haskell.
What exists instead are oversimplified borderline incorrect explanations of the various components of the language and their implications leaving readers a false sense of knowing and understanding FP, Haskell and even programming as a whole. These are interleaved with patronizingly simple examples and analogies that do little in the way of explaining the essence and limits of the topic under discussion.
The insistence on using inappropriate “quick check” question answer sections and summaries that disrupt reading flow undermine the purpose of such structures and actually hinder understanding of the specific concepts and the corresponding bigger picture renders this book a bafflingly burdensome obstacle to people looking to learn about the elegant and beautiful world of functional programming and Haskell.
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!
On the negative side, for the target audience, already programmers, but not familiar with Haskell, I really think it could've put in more information about the basic mechanics of things, which it *sorely* lacks. If you go by this book alone, you'll never really exactly have an idea about how indentation works in Haskell (literally, the most the author ever says is "whitespace is significant, not as much as Python, but assume anything you see is indented that way for a reason", then goes on to use indentation everywhere, leaving you relatively in the dark about the mechanics, leaving a vague sort of lingering and annoying confusion about it for the entire book). A few sideboxes on things like precedence, associativity, indentation, and other minor mechanics could go a *long* way to improving this book. Obviously, you won't cover all of Haskell in a single book, but you *can* get a decent overview of the basics in a single book. I can scour the internet every time I find such a hole, but that partially defeats the purpose of picking up a book to learn, to have a relatively coherent and filtered view to start with. You'll never get done learning Haskell, and a book of this *should* set up a foundation for you to learn more, but I don't think you should *need* to in order to read the text without a vague sense of unease about some fundamental questions without reading supplementary material. Adding a lot more of this kind of information really wouldn't need to change the basic structure of the book.
However, it does seem like the most recently written book of this kind, and I'd still call it a good book, but having done so much so well, the missed potential stings a bit.
Top reviews from other countries

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.


La sezione riguardante i monadi è molto pratica: vengono introdotti in modo abbastanza sbrigativo mostrando direttamente degli esempi di utilizzo. Ciò è sufficiente per poter essere produttivi con questo concetto ma non per poterlo comprenderlo a fondo. Per questo motivo, è raccomandabile avere un’accurata conoscenza di certi concetti di teoria delle categorie(funtori, monadi e funtori applicativi) altrimenti certi concetti potrebbero risultare un po’ troppo densi.


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


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





