
Amazon Prime Free Trial
FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with FREE Delivery" below the Add to Cart button and confirm your Prime free trial.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited FREE Prime 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
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:
-24% $34.25$34.25
Ships from: Amazon.com Sold by: Amazon.com
Save with Used - Good
$25.95$25.95
Ships from: Amazon Sold by: Signature Marketplace
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

Customers who viewed this item also viewed
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: #657,333 in Books (See Top 100 in Books)
- #49 in Functional Software Programming
- #652 in Microsoft Programming (Books)
- #685 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 amazing, entertaining, and effective for beginners. They appreciate the concise, straight-to-the-point explanations of language concepts and complex topics. Readers also appreciate the many examples illustrating the concepts and language features being described. They describe the book as easy, friendly, and low-pressure. In addition, they find the humor funny.
AI-generated from the text of customer reviews
Customers find the learning material amazing, entertaining, and effective. They say it's full of useful pointers and has minimal jargon. Readers also mention the book is the best introductory book on Haskell and an excellent introduction to the language.
"...and important topic and made it so amazingly accessible, fun, and fascinating.Kudos for a job well done!!!" Read more
"...The explanations of the concepts are very clear and straight to the point, with nice analogies and examples...." Read more
"...this book did an amazing job at providing a very informal, well paced introduction to both the Haskell language and functional programming in general..." Read more
"...Most importantly, the book is full of useful pointers and has a minimal amount of jargon that put me to sleep...." Read more
Customers find the information concise and straight to the point. They say the book is detailed enough to make an almost incomprehensible programming language nearly comprehensible. Readers also appreciate the technical presentation and disarming creativity. They mention the examples are clear and the writing style is simple but effective.
"...Haskell to me is well worth learning because it is so pure...." Read more
"...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..." Read more
"...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..." Read more
"...Another big "plus": Mr. Lipovaca's code actually COMPILES. All of it. (Professor Hutton, are you reading this?)..." Read more
Customers find the book clear, insightful, and covers all the basics to get them started. They appreciate the discussions about monads. Readers also mention the book hints at the underpinnings of Haskell and functional programming.
"...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...." Read more
"...the concepts are very clear and straight to the point, with nice analogies and examples...." Read more
"Great book. It covers all the basics to get you started, but does it in such a creative manner...." Read more
"...concept about Haskell: higher order function, functor, type classes are clearly explained...." Read more
Customers find the book easy to read, with a friendly, low-pressure style. They say it progresses gradually and is quite accessible. Readers mention that the code snippets are easy to follow and the functional programming is not difficult.
"...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!!!" Read more
"...small, bite-sized, easily-digestible chunks, with (mostly) easy-to-follow code snippets, before moving on to the next chunk...." Read more
"...funny but his introduction of the language was concise and extremely easy to understand...." Read more
"...explaining Functors, Applicative Functors, and Monads makes it easy to grab...." Read more
Customers find the book funny and informative.
"...such a lofty and important topic and made it so amazingly accessible, fun, and fascinating.Kudos for a job well done!!!" Read more
"...The author does take a very lighthearted approach, employ humor, etc.,..." Read more
"...While the silly drawings throughout the text are mostly cute and fun, the immature and occasionally insensitive humor both in the text and in code..." Read more
"...An off-beat sense of humor that keeps the reader awake without wandering away from the purpose of each chapter...." Read more
-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
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 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.
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.








