
#Haskell
#functional_programming
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:
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 Introduction
Haskell 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.
Review
"The thing that's most impressive about Learn You a Haskell for Great Good! is how well-written it is. This book is just fantastic."
—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
Miran Lipova?a is a computer science student in Ljubljana, Slovenia. In addition to his passion for Haskell, he enjoys boxing, playing bass guitar, and, of course, drawing. He has a fascination with dancing skeletons and the number 71, and when he walks through automatic doors he pretends that he’s actually opening them with his mind.









