Haskell


Haskell has now been my programming language of choice for 7 years. For many things, I had to struggle to understand the meat of them and went through the usual troubles (lost in monad tutorials and friends, seeing super-abstract code written mentionning all kinds of abstractions, etc). This page is just supposed to gather some links and explanations that I found to be helpful and/or interesting.

Basics

Books

Two good books that are recommended to any Haskell beginner:

In addition, I also suggest taking an occasional look at the Haskell wikibook when the other two leave you clueless about something.

Key topics not covered enough in the books

GHC Core

Although I have written a few things about it (see here), I strongly recommend checking out the links given on StackOverflow, mostly by Don Stewart: Reading GHC Core.

A small tip for getting a GHC Core output that’s actually readable is to build your file/project with:

$ ghc -O2 -ddump-simpl -dsuppress-idinfo -dsuppress-coercions -dsuppress-type-applications -dsuppress-uniques -dsuppress-module-prefixes Hello.hs

Libraries

History

Like anything but photons in this world, Haskell does have an history. A very interesting one – you can see many of the ideas and features we know, love and use these days come into play (but not all of them). And guess what? Most of that story is available to anyone interested in a very-well written paper.

  • A History of Haskell: Being Lazy With Class, Paul Hudak (Yale University), John Hughes (Chalmers University), Simon Peyton Jones (Microsoft Research), Philip Wadler (Edinburgh University), The Third ACM SIGPLAN History of Programming Languages Conference (HOPL-III) San Diego, California, June 9-10, 2007.