Contents | Getting Started
The book was written originally by Jeff Shrager (currently at Carnegie-Mellon University) and Steve Bagley (currently at MIT) while they were undergraduates at the University of Pennsylvania. The Moore School Computing Facility, in the School of Engineering and Applied Science, at the University of Pennsylvania supplied computer time so that it could be developed online. Additional material was contributed by Stewart Schiffman of the Gnosis staff, and by Steve Cherry, author of P-LISP, which is the dialect of Lisp that the examples in this book use.
Lisp is simple. Many computer languages force the user to deal with messy details of the computer on which they are run. In Lisp you don't worry about the mechanism of the computer. Also, the syntax, or format, of Lisp expressions is regular and consistent.
Lisp is fun. The types of problems usually dealt with in Lisp often include games and puzzles. Also, Lisp sessions are completely interactive. This interaction gives the user a greater sense of control over the machine, and makes the computer more of a "partner in thinking". Don't forget that for many years all computer systems were "batch," which meant that jobs had to be submitted on punched cards. The computer that P-Lisp runs on is substantially more powerful and vastly easier to use than most of those early machines.
The dialect spoken in this book is P-Lisp. This is yet another Lisp system, but this one runs on the Apple and various other microcomputer systems. Personal Lisp computers are a net innovation in the computer world. MIT has big microcomputers that run a MacLisp derivative. Although P-Lisp isn't as powerful as those microcomputers (primarily because the computers it runs on are much smaller), the ideal of having your own Lisp processor remains. In particular, this version of the book goes with P-Lisp version 3.1. If you don't have that version, some minor details will be different (for example, there may not be any floating point arithmetic).
If you are using another dialect of Lisp, you shouldn't have too many problems. In most of the examples, we use a fairly common subset of Lisp functions.
We have tried to minimize the difficulties associated with some of the more abstract concepts in Lisp by working up to them from elementary, concrete examples. We suggest that you carefully follow through all the examples presented. Access to your computer is desiderable so that you may try your hand at Lisp; nothing promotes learning like immediate feedback.
The chapters are quite short. It should be possible to read and comprehend several in one sitting. This book was not meant to be read in one sitting, so take your time. There are a few problems at the ends of some of the chapters. Do them if you feel like it. Some of them aren't meant for solution as much as for thought, so if you think about them rather than actually doing them, that's sufficient.
Parenthetical remarks are going to be enclosed in square brackets [""] instead of the normal parentheses because Lisp makes a lot of use of parentheses and things will get confused.
Enjoy, and please feel free to let us know about any problems you have or other things you would like to see.
Contents | Getting Started