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:
$31.73$31.73
FREE delivery: Thursday, April 4 on orders over $35.00 shipped by Amazon.
Ships from: Amazon.com Sold by: Amazon.com
Buy used: $18.52
Other Sellers on Amazon
+ $3.99 shipping
90% positive over last 12 months
+ $3.99 shipping
90% positive over last 12 months
Usually ships within 4 to 5 days.
& FREE Shipping
82% positive over last 12 months
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.
Learn You a Haskell for Great Good!: A Beginner's Guide 1st Edition
Purchase options and add-ons
It's all in the name: Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language. Packed with the author's original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fundamentals in a way you never thought possible.
You'll start with the kid stuff: basic syntax, recursion, types and type classes. Then once you've got the basics down, the real black belt master-class begins: you'll learn to use applicative functors, monads, zippers, and all the other mythical Haskell constructs you've only read about in storybooks.
As you work your way through the author's imaginative (and occasionally insane) examples, you'll learn to:
- Laugh in the face of side effects as you wield purely functional programming techniques
- Use the magic of Haskell's "laziness" to play with infinite sets of data
- Organize your programs by creating your own types, type classes, and modules
- Use Haskell's elegant input/output system to share the genius of your programs with the outside world
Short of eating the author's brain, you will not find a better way to learn this powerful language than reading Learn You a Haskell for Great Good!
Excerpt from the IntroductionHaskell is fun, and that’s what it’s all about!
This book is aimed at people who have experience programming in imperative languages—such as C++, Java, and Python—and now want to try out Haskell. But even if you don’t have any significant programming experience, I’ll bet a smart person like you will be able to follow along and learn Haskell.
My first reaction to Haskell was that the language was just too weird. But after getting over that initial hurdle, it was smooth sailing. Even if Haskell seems strange to you at first, don’t give up. Learning Haskell is almost like learning to program for the first time all over again. It’s fun, and it forces you to think differently.
NOTE
If you ever get really stuck, the IRC channel #haskell on the freenode network is a great place to ask questions. The people there tend to be nice, patient, and understanding. They’re a great resource for Haskell newbies.
So, What's Haskell?
Haskell is a purely functional programming language.
In imperative programming languages, you give the computer a sequence of tasks, which it then executes. While executing them, the computer can change state. For instance, you can set the variable a to 5 and then do some stuff that might change the value of a. There are also flow-control structures for executing instructions several times, such as for and while loops.
Purely functional programming is different. You don’t tell the computer what to do—you tell it what stuff is. For instance, you can tell the computer that the factorial of a number is the product of every integer from 1 to that number or that the sum of a list of numbers is the first number plus the sum of the remaining numbers. You can express both of these operations as functions.
> Read the Introduction (PDF) in its entirety.
- ISBN-109781593272838
- ISBN-13978-1593272838
- Edition1st
- PublisherNo Starch Press
- Publication dateApril 15, 2011
- LanguageEnglish
- Dimensions7.12 x 1.06 x 9.25 inches
- Print length400 pages
Frequently bought together

Similar items that may deliver to you quickly
Editorial Reviews
Review
—Gregory Collins, Google Switzerland
"Managed to walk me through all important Haskell concepts without ever making any of the material sound complicated. A good introduction to functional programming."
—Marijn Haverbeke, author of Eloquent JavaScript
"This is a fantastic book and I highly recommend it as the first book on Haskell—and possibly even the second."
—Michael Fogus, author of The Joy of Clojure
"A fantastic, fun, thorough introduction to Haskell, spiced up by Miran's great sense of humor and zany illustrations."
—Brent Yorgey, The Math Less Traveled
"Miran Lipovača has done a fantastic job of writing a book aimed at beginning Haskell programmers. I like his very straightforward writing style of introducing each topic with the minimum of complexity."
—Bryan Bell, Math and More
"This is a remarkable book and may be just what this beautiful language was missing."
—Michael Kohl, Citizen428
"This book is the best way I know to obtain the Haskell foundation you need for fluency."
—Jeremy Bowers, Jerf.org
"This is a terrific book. It makes what might otherwise seem impenetrable mathy-code and makes it fun and approachable."
—Simon Reynolds
About the Author
Product details
- ASIN : 1593272839
- Publisher : No Starch Press; 1st edition (April 15, 2011)
- Language : English
- Paperback : 400 pages
- ISBN-10 : 9781593272838
- ISBN-13 : 978-1593272838
- Item Weight : 1.74 pounds
- Dimensions : 7.12 x 1.06 x 9.25 inches
- Best Sellers Rank: #232,432 in Books (See Top 100 in Books)
- #11 in Functional Software Programming
- #210 in Microsoft Programming (Books)
- #288 in Software Development (Books)
- 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-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
I just finished this book recently, however I've had prior exposure to the language (although never programming formally in it): typeclassopedia, Programming in Haskell, Erik Meijer's on-line lectures, etc. (the usual resources) as well as all 1200 pages from Chris Allen,and Julie Moronuki's "Haskell Programming from First Principles" book. While this book doesn't have exercises, I think it has the others beat in one category: simplicity. I'm also of the school where I think it's effective to show someone a concept(s) then let them go out to apply it to their own projects rather than giving them an assortment of examples/exercises to do.
Also, although some of the other references/books assume the reader as a pure beginner, this is the only book that sincerely holds true to their word and treats them as a beginner from it's first to last pages. The others I noticed tend to assume the reader has more experience as a programmer and even with the language as well as functional programming itself (I could understand why in typeclassopedia's case). This book is very well written compared to the others as well. The explanations of the concepts are very clear and straight to the point, with nice analogies and examples. Although in the printed edition there are some typos, the free version (available online) has the corrections- all you have to do is visit the section you're reading. But what's great about that is, because their explanation is clear, you'll have the knowledge to catch it, run a double check on their website and be on your way.
As mentioned, it's about simplicity. One thing I really appreciate about this book, is it makes everything about the language first. It may not cover the more technical things like testing, stack, cabal, etc. But if you just want to learn about Haskell syntax and it's concepts (from currying to monads), this is the book for it.
What I especially like about it is the way it hints at the underpinnings of Haskell (and functional programming) in category theory (and other formal systems); thus making them much more accessible and comprehensible.
The discussions about monads are fantastic!
The examples are first rate: it's well worth going through each and every one of them (slowly and carefully) to fully absorb the gold mine of insights each one can impart. (Even if you think you already understand the concepts: you might just find yourself seeing things in a novel and unexpected way! ;-)
I truly hope the author will write another book. He has a real gift and talent; not only in explaining, but also in making things interesting. I actually found this book hard to put down. It really drew me in. (Not just any technical book can cast such a spell!)
This book should be of great interest to F# programmers. F# materials alone will not give a reader enough insight into the milieu of functional programming to really appreciate monads (for instance). In fact, I say: to really learn C# you need to learn F#, and to really learn F# you need to learn Haskell.
I also hope one day we'll have H# available as a fully integrated citizen of .Net (following in F#'s footsteps).
Haskell to me is well worth learning because it is so pure. The lessons learned can then be mapped back to many existing technologies that one must work with. (Legacy technologies aren't going away anytime soon; but the good news is that the Haskell way of thinking can still be leveraged to great good in many venues.)
The hand drawn artwork (done by the author himself!) added a lot to the tapestry and enchanting magic of this well crafted book.
In conclusion: my greatest praise for this book is the way it took such a lofty and important topic and made it so amazingly accessible, fun, and fascinating.
Kudos for a job well done!!!
I must admit, first, that I had previous exposure to functional programming (in the context of scheme), so my review may be a bit biased. That being said, I felt that this book did an amazing job at providing a very informal, well paced introduction to both the Haskell language and functional programming in general. Unlike most of your "for dummies" books (as well as all of the similar variations of that general genre), however, you won't be insulted by ridiculously dumbed-down explanations or suffer from way too many forced puns, jokes, etc. The author does take a very lighthearted approach, employ humor, etc., but it seems much more natural and is much less obnoxious than most books which attempt to take such a route.
Top reviews from other countries
Reviewed in Brazil on July 20, 2023
Lo que más me gustó de este libro es que no solo te enseña los conceptos básicos de la programación funcional, sino que también te guía a través de la implementación práctica de algoritmos y estructuras de datos en Haskell. Es un enfoque muy completo que te permite no solo entender la teoría, sino también aplicarla en situaciones reales.
El autor tiene un estilo de escritura muy ameno y humorístico que hace que la lectura sea muy agradable. Además, el libro está estructurado de manera lógica y bien organizada, lo que facilita el seguimiento del contenido.
En resumen, si estás interesado en aprender programación funcional y buscas un libro que te guíe de manera clara y accesible, este libro es una excelente opción. Con su estilo ameno, explicaciones detalladas y enfoque práctico, estoy seguro de que aprenderás mucho y disfrutarás del proceso.
The book itself is very nice quality. The wording is very clear and casual which is a very rare find in programming literature. You won't get stuck wondering what words mean but at the same time it offers a very solid grounding (and even some more complex concepts!) for the Haskell language.
Note that the book is essentially available in the form of the "Learn You A Haskell" website but it's always beneficial to have a physical copy.
I would definitely recommend to anyone wanting to study a functional language.










