My current leisure-time project is porting the examples from Peter Seibel's excellent Practical Common Lisp (PCL) to Clojure.
I think Clojure is interesting for three reasons:
- Clojure is Lisp, but minus historical baggage.
- Clojure gives full access to the JVM and Java libraries.
- Clojure groks concurrency and state.
My ground rules are simple:
- I am not going to port everything, just the code samples that interest me as I re-read Practical Common Lisp.
- Where Peter introduced Common Lisp features in a planned progression, I plan to use whatever Clojure feature come to mind. So I may jump straight into more "advanced" topics, even in the intro chapters.
Please do not assume that this port is a good introduction to Common Lisp! I am cherry-picking examples that are interesting to me from a Clojure perspective. If you want to learn Common Lisp, read PCL. In fact, you will probably want to read the relevant chapters in PCL first, no matter what.
The Series
Notes
- The git repository for the sample code is at http://github.com/stuarthalloway/practical-cl-clojure.
- Hat tip to Ola Bini who is working on a similar idea, porting PAIP to Ruby.