I would like to start Haskell, just out of curiosity.
What books do you recommend?
I would like to start Haskell, just out of curiosity.
What books do you recommend?
If you are a newbie to functional programming in general, and just happen to want to learn Haskell in the process, then there's probably nothing better than Introduction to Functional Programming
It seems it's out of print though, so you might want to try Introduction to Functional Programming using Haskell, although I cannot attest the quality of this book.
I know only one (so I can't compare): The Haskell Road to Logic, Maths and Programming. It seems you can download the pdf (google the title).
It starts real easy, then gets quite mathematical. The approach seems interesting. Unfortunately I had to stop learning Haskell for lack of time and don't know good you math skills must be.
I learned Haskell relatively recently, but did not use any physical books. Instead, I used some online guides:
A gentle introduction to Haskell, used over and over again. I think this might be a great first step.
Yet another Haskell tutorial. I enjoyed this book a lot, in particular because I tried to solve the exercises. (Sometimes I tried too hard. If you want to, also, try func2 from Exercise 7.1 -- the official solution is not correct.)
I did not use the official specification, except maybe once or twice because I wanted to check the official spec for some nuance: Haskell 98 report
You may also be interested in two language-specific introductions (I did not use either, however, and so I cannot recommend them): Haskell tutorial for C programmers and Haskell for Perl programmers
I did, however, read some papers on Haskell: A history of Haskell: being lazy with class
I know this is getting ahead of myself, but if you're interested in STM (software transactional memory), I enjoyed Beautiful concurrency.
I specifically learned Haskell to write a parser. As such, I used the following guides for the Haskell library Parsec: (as a side effect, I found that I understood monads better) Parsec, a fast combinator parser (the official guide) and Parsec: direct style monadic parser combinators for the real world
Finally, as John suggested and to complete the list, a more recent one is "Real World Haskell".
YAHT was imported into the Haskell wikibook project where it has been expanded upon so I would check out the wikibook.
Davie's Introduction to Functional Programming Systems Using Haskell is quite a gem.
I'd recommend two books:
Programming in Haskell by Graham Hutton. There is an quite recent and extensive review available here saying it's the best introduction available to Haskell at this point.
Real World Haskell by Bryan O'Sullivan, Don Stewart, and John Goerzen. You can pre-order or read the free online copy (not just the beta). It covers many interesting and useful topics on how to write applications for the real world, once you've learned the basics.
Find a copy of "Haskell: The Craft of Functional Programming".