Original Post
I've recently got into functional programming languages in a big way. I'm thinking of getting some books on FPL's for Christmas. Right now, I know SML, kind of know O'Caml and would like to learn Haskell and Lisp or Scheme. I'd also like to learn about the theory behind the languages, for example, their relationship with the lambda calculus etc and how type inference and their type system work. I've started reading "Types and Programming Languages" from the library. For Lisp, I was thinking about getting "ANSI Common Lisp" by Paul Graham and for Haskell I was thinking about getting "The Haskell School of Expression: Learning Functional Programming Through Multimedia" by Hudak. Really I taught myself the basics of Haskell in an afternoon, but things like Monads, type classes and lazy evaluation are foreign to me as an SML programmer. Does anyone have any experience with these books? Any recommendations?