I can whole heatedly recommend Pearls of Functional Algorithm Design http://www.amazon.com/Pearls-Functional-Algorithm-Design-Ric...
It's a good cross between two other excellent books:
- Jon Bentley's Programming Pearls http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/...
and
- Chris Okasaki's Purely Function Data Structures http://www.amazon.com/Purely-Functional-Structures-Chris-Oka....
If you haven't read all three, its well worth your while to do so!
And of course if you are going down the rabbit hole of reading Perls of Functional Algorithm Design then you need to read the "how to read Pearls of Functional Algorithm design" as well.
http://www.atamo.com/blog/how-to-read-pearls-by-richard-bird...
[edit] Preface says "The present book is a completely rewritten version of the second edition of my Introduction to Functional Programming using Haskel" so my recommendation is moot.
Turns out it was an excellent course, and Haskell is a great intro to programming in general, but the book? Think I sold it back via Amazon in the first term.
Haven't read this new book, but $90 seems like a price set to be sold to university libraries, not students - surprised to see it on the HN homepage.
0: http://www.amazon.com/Beginning-Haskell-A-Project-Based-Appr...
http://www.amazon.com/Introduction-Functional-Programming-us...
The 1998 book was excellent, except that it came just before Haskell 98 and so one or two examples needed a little modification before they would build with GHC, but really it was a paper and pencil type of thing. I read the whole thing sitting in a copyright library without a computer because the book was two expensive to buy and was not in my university library. Looks like that won't change with this update.
Glancing at the text available, it doesn't seem to make any references to other programming languages, and takes an approach of "let's build this up from the things you learned in Math class". Seems like it might be a good fit for someone with more math than programming background, or someone with enough programming experience that they want to get to the heart of what functional programming is, but a bit jaded by the usual language tutorial format.
Anyway, buy it somewhere else! (I will do ...). I know, Amazon is super cheap and convenient, but we need competition and diversity.