Programming Clojure by Stuart Halloway
A great read which introduced a very interesting language by examining its use in defining a build system.
Clojure itself looks really interesting. It’s a cut down version of Lisp (or Scheme) which integrates well with the java platform on which it runs. There is an emphasis on functional styles of programming and the language is designed with an eye on concurrency, including a simple transactional memory system and actors in the language itself. Basing it on Lisp, which facilitates the use of macros, means the language can have a small core and is easily extensible via internal dsls.
The book is really clear and introduces the concepts very well indeed. I’ll have more to say on Clojure soon.