Picture of stu

PCL -> Clojure

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:

  1. Clojure is Lisp, but minus historical baggage.
  2. Clojure gives full access to the JVM and Java libraries.
  3. 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 should probably read the relevant chapters in PCL first, no matter what.

The Series

The Book

If you find this series helpful, you might also like my book, Programming Clojure.

Talks

I am available to give conference talks on Clojure. Check the schedule for an event near you, or contact Relevance (info@thinkrelevance.com) to schedule an event.

Notes

Comments
  1. FogusSeptember 17, 2008 @ 01:51 AM

    For some time now I have wanted to port Graham’s On Lisp code to Clojure. I have to image that someone else has done it by now.

    I have been watching your repo for the past few days… looking forward to seeing more.

    -m

  2. Josip GracinSeptember 17, 2008 @ 04:58 AM

    Very nice blog! Keep up the good work!

  3. Tom EmersonSeptember 17, 2008 @ 03:29 PM

    Stuart, great work here. Keep it going. I’ve been thinking of doing the same for PAIP: good stuff.

  4. Hans HübnerOctober 02, 2008 @ 02:12 AM

    Thanks for the good work, your examples helped me get going with Clojure. I wonder about the ‘spit’ function that you use here. Is it your invention? It does not seem to be part of Clojure.

    Cheers, Hans

  5. ronenOctober 05, 2008 @ 09:20 PM

    Excellent! Examples is the thing that im missing the most while studying Clojure, sure i can follow Lisp examples however Clojure data structures are quite different from what i understand so it won’t be a direct port.