New on Amazon: Unwell
Buy new:
$44.99
FREE delivery Tuesday, May 6 to Nashville 37217
Ships from: Amazon.com
Sold by: Amazon.com
$44.99
FREE Returns
FREE delivery Tuesday, May 6 to Nashville 37217
Or Prime members get FREE delivery Sunday, May 4. Order within 1 hr 9 mins.
Only 3 left in stock - order soon.
$$44.99 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$44.99
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
Amazon.com
Amazon.com
Ships from
Amazon.com
Sold by
Amazon.com
Amazon.com
Sold by
Amazon.com
Returns
30-day refund/replacement
30-day refund/replacement
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
$17.95
Get Fast, Free Shipping with Amazon Prime FREE Returns
Like New - Book Like New. Text clean. Like New - Book Like New. Text clean. See less
FREE delivery Wednesday, May 7 to Nashville 37217 on orders shipped by Amazon over $35. Order within 1 hr 9 mins
Only 1 left in stock - order soon.
$$44.99 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$44.99
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Access codes and supplements are not guaranteed with used items.
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

Follow the author

Something went wrong. Please try your request again later.

Get Programming with Haskell First Edition

4.6 out of 5 stars 76 ratings

{"desktop_buybox_group_1":[{"displayPrice":"$44.99","priceAmount":44.99,"currencySymbol":"$","integerValue":"44","decimalSeparator":".","fractionalValue":"99","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"7mSrPmk6grkv8L1A2kOB5kJVVJZmrremntrx2wWXe%2BWyBYAQu1AjE7NambEyEBbaJ9dFMyiamxBcFW07Y1BCj9iqoDF3X4CjpVV1MH41i1T%2Bdo1NZgkRdRtVGyHlg3ty97qarVEYVpCQGIt9zKYmiA%3D%3D","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$17.95","priceAmount":17.95,"currencySymbol":"$","integerValue":"17","decimalSeparator":".","fractionalValue":"95","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"7mSrPmk6grkv8L1A2kOB5kJVVJZmrremitQHtiXq%2F5b4M7BueeEfPZJ9Wm%2F8PJMTVjqsQ1I%2BBWRtiRdOqjTITlKy3VNuAQuCSXZWU1HQ5mM9xppiCfbOqmE9ZsGHCAMywMLZ%2BaCxbtsTtRQ6l06y7F5RC172kywXdxlBeR4Pk3Z%2BqvV6NAlmNou0BGoFAoGF","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

Summary
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

Frequently bought together

This item: Get Programming with Haskell
$44.99
Get it as soon as Tuesday, May 6
Only 3 left in stock - order soon.
Ships from and sold by Amazon.com.
+
$43.99
Get it as soon as Tuesday, May 6
In Stock
Ships from and sold by Amazon.com.
Total price: $00
To see our price, add these items to your cart.
Details
Added to Cart
One of these items ships sooner than the other.
Choose items to buy together.

Editorial Reviews

About the Author

Will Kurt currently works as a Data Scientist at Quick Sprout. With a formal background in both Computer Science (MS) and English Literature (BA) he is fascinated with explaining complex technical topics as clearly and generally as possible. He has taught a course section on Haskell at the University of Nevada, Reno and given workshops on Functional Programming. He also blogs about probability at CountBayesie.com.

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
  • Customer Reviews:
    4.6 out of 5 stars 76 ratings

About the author

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

Discover more of the author’s books, see similar authors, read book recommendations and more.

Customer reviews

4.6 out of 5 stars
76 global ratings

Review this product

Share your thoughts with other customers

Customers 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

8 customers mention "Comprehension"6 positive2 negative

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

3 customers mention "Programming ability"3 positive0 negative

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

Lot's of errors and some inconsistencies. Seems rushed.
1 out of 5 stars
Lot's of errors and some inconsistencies. Seems rushed.
I mostly like this book! Why the low score? I wanted to call attention to some issues in the book. Lot's of errors. See the errata on the book's page on the Manning site. I noticed cases where variables in examples were inconsistently named. In one chapter, he imports Data.Text.IO as TIO and in another chapter he imports it as TI. Consistency is important when introducing readers who are new to a subject. Overall, it seems the book needed more editing and was maybe rushed. Hopefully these will be corrected in a new edition. There is a discussion forum for the book on Manning's site, however, it seems the author is no longer active on there. I see errors being reported by readers but nobody seems to respond lately. Exercise 2 from chapter 24: > Q24.2 Write a program called capitalize.hs that will take a file as an argument, read > that file, and then rewrite it capitalized. Does he mean to capitalize all the letters of the file name? Just the first letter? The contents of the file? Some of the exercises are underspecified in this way. Thankfully, solutions are provided in the back of the book. In chapter 25 there's a function randomSortSection. One of the exercises is for implementing a similar function with the same type signature called randomReverseBytes. For consistency, it should have been named randomReverseSection. One of the example programs he has you build is for keeping track of an inventory of body parts... Um... yeah, a bit immature at best and macabre or demented at worst. Later the book contains references to the horror author 'H.P Lovecraft', an author of demented and twisted stories. One program you write distorts photos of Lovecraft. The next chapter has references to 'Thomas Ligotti', who makes Lovecraft look like Walt Disney... Seriously messed up stuff. Why would the author choose to propagandize this to potentially young readers? He shouldn't assume that all his readers are immature or emo kids fascinated with bizarre/horror fiction... These juvenile examples may be off-putting for some readers. Many of the other examples were great and were neutral themed. The errata page on Manning's site says the following: "These errors occur in the book's first printing. Unless noted, these corrections have been made to the electronic versions." However, many of the errors still exist in the PDF you download from Manning as well as the live book version on their website. Lesson 35 which demonstrates 'stack' appears to be out of date. Recent versions use 'package.yaml' which the book doesn't mention. The book says to edit 'palindrome-checker.cabal', however this file is generated from 'package.yaml'. It's understandable that a book can become out of date, however, the errata has not been updated, much less the electronic versions of the book. In Lesson 40, in the following: data NOAAResult = NOAAResult { uid :: Data.Text.Text, mindate :: Data.Text.Text, maxdate :: Data.Text.Text, name :: Data.Text.Text, datacoverage :: Int, result_id :: Data.Text.Text } deriving Show it seems that `datacoverage` should be a `Double`. At least when I retrieved the data from NOAA, it had some float values for this field. The answer in the back of the book for Q41.1 doesn't insert a value for the 'last returned' day. So when you add a tool using the suggested function, the field for 'last returned' is NULL. I've attached a screenshot of a version which resolves this by using the current day. If the quality issues are resolved in a future version, I'd likely give this book a 4 out of 5.
Thank you for your feedback
Sorry, there was an error
Sorry we couldn't load the review

Top reviews from the United States

  • Reviewed in the United States on May 18, 2018
    This 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!
    14 people found this helpful
    Report
  • Reviewed in the United States on July 1, 2021
    I'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.
    2 people found this helpful
    Report
  • Reviewed in the United States on April 5, 2018
    I, 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.)
    4 people found this helpful
    Report
  • Reviewed in the United States on October 16, 2019
    Similar 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.
    6 people found this helpful
    Report
  • Reviewed in the United States on August 23, 2023
    A 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

Translate all reviews to English
  • Jerome Lanteri
    4.0 out of 5 stars easy to understand
    Reviewed in France on December 20, 2018
    Good learning curve with this book. All is clear, examples are good choice. perfect for beginners
  • Mattematt
    5.0 out of 5 stars Great book for learning haskell
    Reviewed in the United Kingdom on November 10, 2020
    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.
  • Drumnugget
    3.0 out of 5 stars Prima boek ondanks de soms weel heel slordige foutjes
    Reviewed in the Netherlands on February 28, 2023
    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.
    Report
  • Gianluca
    5.0 out of 5 stars Eccellente
    Reviewed in Italy on November 6, 2018
    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
    Customer image
    Gianluca
    5.0 out of 5 stars
    Eccellente

    Reviewed in Italy on November 6, 2018
    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
    Images in this review
    Customer imageCustomer imageCustomer imageCustomer imageCustomer imageCustomer image
  • Cliente Amazon
    4.0 out of 5 stars Claro y con ejemplos.Conciso y gradual
    Reviewed in Spain on November 20, 2018
    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