I've been through Clojure Programming, The Joy of Clojure, and Programming Clojure, and this is the one I'm recommending. The review hits on many of the reasons, but I also particularly liked how this book dealt with Java interop (not until after a solid foundation had been built around Clojure). I feel that many JVM language books jump too fast into talking about interacting with Java, to the detriment of learning the language in question.
Agreed on all. All three have their strengths and I respect their authors immensely. That said, I have to strongly, strongly recommend newcomers check this book out first, especially if you're coming from another high level language.
Clojure Programming's introduction to what makes lisps lisps as well as the overview of functional programming really sets it apart. The constant comparison to analogs in other languages is also very helpful for coming to grips with Clojure (I'm a casual Clojure hobbyist hacker with slightly more than passing familiarity with the language, and I'm still getting a lot out of every page.)
I'm slowly working my way through the book in order to write a review, myself. I've only gotten through the Chapter 1-Down the Rabbit Hole, but already, I'm pretty happy with how the book is fairly gradual and walks you through what it's presenting to you.
Thanks a lot for that nudge. Just fighting Amazon to give me a digital version.
I wanted to buy a Clojure book for quite some time, but this time I was converted successfully (having played with ClojureScript last night certainly helped to intrigue me again).
1) Simply Scheme
2) The Littler Schemer
3) ANSI Common Lisp
4) On Lisp
5) Practical Common Lisp
6) Structure and Interpretation of Computer Programs
7) Let over Lambda
FWIW, the book does not make any assumptions about the reader's understanding or prior awareness of functional programming. At the same time, I hope we made the narrative interesting and entertaining enough for those that are already conversant in FP and such.