Lisp was developed as a functional programming language. This means it is based on the use of expressions. The readers may be familiar with Pascal, C, or FORTRAN, which are all classified as imperative programming languages. These languages are statement-oriented, the programs consisting of a sequence of statements. Lisp programs, as originally defined, were specified entirely as expressions. Current day implementations of Lisp, however, have extensions which allow Lisp programs to be more statement-oriented. At the heart of Lisp is recursion (chapter 3). Due to their regular, recursive structure, Lisp programs tend to be short and elegant. But also, to be able to program effectively in Lisp, a different kind of thinking is required; one must learn to think recursively. This is very different from statement-oriented thinking required for languages such as Pascal, C, or FORTRAN. A few simple rules presented in the next few sections will help the reader to think recursively and create better Lisp programs.
© Colin Allen & Maneesh Dhagat