As a small addendum to Chris' already quite comprehensive list: If you are interested in playing with Clojure then there's a free online Clojure REPL (Read, Eval, Print, Loop) which is great for getting stuck in very quickly without having to mess about installing anything. It has a small language tutorial too which is quite nice to get you going.

Good list. In addition now I would highly recommend Functional Programming Patterns in Scala and Clojure - the nice thing about this book is that it shows OOP solutions in Java, followed by FP solutions in Scala and Clojure, along with patterns that are unique to FP. I think this approach would be very helpful for Java developers trying to learn FP techniques!

Sean Corfield wrote:In addition now I would highly recommend Functional Programming Patterns in Scala and Clojure - the nice thing about this book is that it shows OOP solutions in Java, followed by FP solutions in Scala and Clojure, along with patterns that are unique to FP. I think this approach would be very helpful for Java developers trying to learn FP techniques!

Thanks for the tip, Sean. Just bought it - another one for my stack of FP books I need to read (at least ebooks don't take up any space).