Assuming that you, dear reader, haven't been living under a rock for the last year or so, you will no doubt be aware of the Raspberry Pi, a rather cute £30 ARM machine, in the spirit of the BBC Micro, aimed at the education market. Of course, being an insatiable hoarder of assorted electronic detritus, I had to have one. Sadly, any substantial use of it was delayed due to finals, but I now find myself both with free time and in need of a project. As I probably should have posted more about, I spent most of the last year developing a piece of educational software in the Clojure language, providing me with my first significant experience of developing in a Lisp, and I loved it. I loved it so much that I learned some Scheme and taught a bunch of kids how to program in it. I now intend to delve deeper down the rabbit-hole and teach myself Common Lisp, and the RasPi seems like a perfect tool with which to do so.

Conrad Barski has recently released a book entitled The Land of Lisp, which aims to teach the reader how to hack Common Lisp through a number of simple game projects. What I have read so far of it is excellent: Barski's ‘unique’ artwork is sprinkled liberally throughout, and a hearty dose of humour does not go amiss, especially in a book that could potentially have been very dry indeed. So what I propose is this: a series of blog posts charting my progress through The Land of Lisp, using the RasPi as a development platform. Hopefully this will be of some use to any would-be Lispers, though my real aim is to drag other RasPi owners, especially those new to programming, toward a more elegant, a more refined, language.

Fig. 1: Obligatory xkcd cartoon.

So please do follow my progress if you are interested. Who knows, you might even enjoy it!

Whilst Barski uses GNU CLISP, it doesn't seem to be readily available for the RasPi, at least not for Arch Linux, nor does SBCL seem to have an ARM port. A package for CMUCL is available, but broken, so I will be using ECL, Embeddable Common Lisp, which is available and works. Can't complain.

For now, here are some instructions for how to get started with the same environment I'll be using:–

Install ECL, CVS and Emacs:

sudo pacman -S ecl cvs emacs

Install QuickLisp:

mkdir -p ~/opt/quicklisp

cd ~/opt/quicklisp

wget http://beta.quicklisp.org/quicklisp.lisp

ecl -load quicklisp.lisp

(quicklisp-quickstart:install :path "~/opt/quicklisp/")

(ql:add-to-init-file)

(quit)

Install SLIME/SWANK

cd ~/opt

cvs -d :pserver:anonymous:anonymous@common-lisp.net:/project/slime/cvsroot co slime

Add the following lines to your .emacs file:

(setq inferior-lisp-program "ecl")

(add-to-list 'load-path "~/opt/slime/")

(require 'slime)

(slime-setup)

M-x slime will then run SLIME for you.

Happy hacking!

UPDATE: I've set up a GitHub repo that will contain my source code, for anyone who wants to follow this: raspberry-lisp