Teach yourself (Eu)Lisp

The objective of these pages is to allow you to study the basic ideas of the Lisp programming language. Each section is followed by self-assessment exercises on the topics covered up to that point. It is a good idea to have a Lisp system, such as euscheme, running in another window, so you can type in expressions to a Lisp system and get back results to see if they agree with your expectations.

The only (intended) assumption is that you have programmed before, having (preferably) taken a course in C, Pascal, Modula or Ada.

If you have any comments about the organisation of these pages, any suggestions for additional topics, or, best of all, new exercises, please send me (Julian Padget) mail.

Here are the basic topics:

The above should be enough to enable you to make progress in virtually any Lisp system. The only major differences are likely to be the names of the functions - and how to leave the Lisp system once you have started it!

Lisp is not one language, but a (vast) family. The remainder of this course is writ- ten specifically in terms of a particular member of that family, which is called EuLisp. There are three things that make EuLisp distinctive: modules, objects and light-weight processes. At this point we introduce another requirement of the reader, namely familiarity with the definition of datatypes and some passing acquaintance with the terms used in object-oriented languages.

There is also an (incomplete) on-line definition for EuLisp.
Julian Padget, jap@maths.bath.ac.uk, this version June 15, 1995