views:

254

answers:

9

I was spoiled by the excellence of "Programming Ruby" when I was in high school, and ever since I've always looked for a combined introduction & language reference book for every new language I attempt.

Note that it doesn't have to be a dead-tree book; any well-written, high-quality resource would be great, regardless of media. This includes blog posts, pdfs, wikis, etc.

Thanks!

+9  A: 

I found Real World Haskell to be great It's also available online

frglps
Sorry, I mentioned the online copy in my post as I didn't see the link in your's. Apologies.
chollida
A great virtue of the online version of Real World Haskell is that it's a wiki/blog kind of thing, so every single paragraph of text has a link which expands to all the comments readers have made on that paragraph.Since those comments are typically code solutions, clarifications, complaints about ambiguity or confusing phrasing etc, they're priceless. At the point where you'd get stumped in a paper copy you can (usually) get back on track by reading through the comments.Ideally I'd like to have a good Haskell programmer I could nag, but this is a good second best.
teapot7
...and to continue past the 600 character limit, the only flaw with the online comments is that the text engine they don't show white space as the user typed it, which makes all of their Haskell code samples both hard to read and often syntactically wrong :(
teapot7
+8  A: 

This is a very beginner friendly take on learning functional paradigm while learning Haskell: http://learnyouahaskell.com/

janne
This. RealWorldHaskell is slightly overrated. Do this, THEN skip over what you know in RWH. I've had friends who found this method very useful.
codebliss
This tutorial is great, but it is also unfinished. It's missing the section on Monads, though with the speed it gets updated I wouldn't be surprised to see that section fleshed out sooner, rather than later.
chollida
LYAH is supposedly going to be a finished book this year: http://haskellwebnews.wordpress.com/2009/12/20/the-year-in-haskell/LYAH is much, much more readable than RWH, which seems to have been written in a hurry. The language in RWH is often muddled and confusing, concepts are frequently used before they're formally introduced, and there is a fair bit of meandering.
Flemish Bee Cycle
+2  A: 

I saw that the Orielly book link was posted for Real World Haskell.

If your feeling like trying before you buy, or just feeling cheap:), you can read the book for free online at: http://book.realworldhaskell.org/read/

I should also add that Microsoft has been going through the book "Programming in Haskell" which is by one of the implementors of Haskell 98.

You can watch the lectures starting from here:

http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/

The link also includes a 20% off coupon for the book. It's good deal as the book is fantastic.

chollida
Neat, I didn't know about the lecture series.
ephemient
Erik Meijer is FANTASTIC.
codebliss
This link shows all 14 lectures in the Programming in Haskell series (13 FPF + 1 Brian Beckman lecture): http://channel9.msdn.com/tags/C9+Lectures/
Randall Schulz
From the C9 lecture page for chapter 1 (referring to the 20% off coupon): "Note: This special offer is valid until December 31, 2009"
Randall Schulz
+3  A: 

Since you're also interested in ML, you might like Paulson's ML for the Working Programmer. It is a fine introduction to the language also considered widely to be a good resource for functional programming concepts. (IIRC there's a discussion of a purely functional priority queue implementation in there somewhere...).

Michał Marczyk
Agreed, It's a good book!
chollida
A: 

YAHT - Yet Another Haskell Tutorial Great Tutorial - sadly unfinished...

primodemus
+2  A: 

Write Yourself a Scheme in 48 hours is good — it’s different from most tutorials in that it follows the progress of a small project from start to finish as it introduces the various language features and libraries.

jleedev
A: 

Structure and Interpretation of Computer Programs: http://mitpress.mit.edu/sicp/full-text/book/book.html

trinithis
A: 

For OCaml you should try Developing applications with Objective Caml which is freely(?) available online.

nagnatron
A: 

The Little Schemer is a great book to teach you how to solve problems recursively. It takes a sort of question and answer approach and slowly builds up the difficulty, introducing new concepts at a nice pace. I remember having my mind blown when I fully understood the Y-combinator. You really feel like your mind is having a workout.

Mike Weller