Suggested sources

If you happen to find To Mock a Mockingbird by Raymond Smullyan do tell me what it's like.


Lecture notes for CM20167. These notes were written for my benefit, not yours, so there may be differences in their content and what I taught. There are definitely errors, too.
This course has 25% coursework which involves programming in Lisp. It is good to get some practice on these simple Lisp Exercises. There are some sample solutions to the Exercises, but don't cheat yourself by peeking before you've tried for yourself. (Further exercise: find and fix the bugs in the solutions!)

The Coursework Assignment.


Euscheme, and some introductory notes. Euscheme is an interpreter for the EuLisp language. The name "Euscheme" is designed to confuse, as it has very little to do with Scheme.

If anyone can port Euscheme to W2K/XP I'd be pleased to hear from you.

Addendum: A MacOS X version is available.

Addendum:

Date: Fri, 15 Oct 2004 15:55:48 +0100
From: Mark campbell
To: rjb
Subject: Euscheme on XP

I found a quick workaround for getting Euscheme going in windows. The Dos 
version (0.35) in a DosBox (http://dosbox.sourceforge.net) window seems to run 
ok - got it going on a bucs machine this afternoon. Not a port (as I have no 
idea even how to start that) but it seems to work and is easy to get going.

Mark Campbell
Addendum: A version compiled for XP directly, courtesy of Chris Archer. Read the readme.txt file.


Some limbering-up exercises in β-reduction. And answers, but don't peek!

Some code for Church Numerals in Lisp.

My Lisp course notes. There are definitely bugs and typos in these notes, so beware!


Other bits and pieces:
Past Papers

"Without understanding functional programming, you can't invent MapReduce, the algorithm that makes Google so massively scalable. The terms Map and Reduce come from Lisp and functional programming. MapReduce is, in retrospect, obvious to anyone who remembers from their [...] programming class that purely functional programs have no side effects and are thus trivially parallelizable." Joel Spolsky
"Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot." Eric Raymond, "How to Become a Hacker"
From the Erlang FAQ:

"The traditional ways of slowing down projects, like adding armies of consultants halfway through, spending a year writing detailed design specifications before any code is written, rigidly following a waterfall model, spreading development across several countries and holding team meetings to decide on the colour of the serviettes used at lunch work just as well for Erlang as for other languages."