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.
Seconded! Also, I'd highly recommend "Introduction to Functional Programming using Haskell" by the same author. This was the book that set me forth on the path of FP during post graduation. Though, professionally, I've been programming in Java for close to a decade now most of the FP principals have held me in good stead.
[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.
Richard Bird was my lecturer at university - Intro to functional programming was on the pre-university required reading list... We were told to buy our professor's book before arriving.
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.
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.
Just taking a quick glance through the table of contents, it looks like it aims to focus more on "how to think about problems in this paradigm" (as the title implies) than the more practically-oriented "let's go write fizz-buzz" approach. For example, it jumps into function composition before it even talks about how to use GHCi. It has a chapter called "Proofs", and it seems to have a chapter focusing on using lazy evaluation to trade off time and space consumption.
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.
Ok, I'm not a big fan of ads here at Hacker News, but actually you kind of proved me wrong as I'm genuinely curious and very tempted to give it a try :-). It looks like a book that could help me become a better dev. I'd probably be using FP via F# at the end of the day, but it's more about the FP mindset, that I think I still don't have.
Anyway, buy it somewhere else! (I will do ...). I know, Amazon is super cheap and convenient, but we need competition and diversity.
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...