"The goals of this short introductory exercise are to present some basic rules about efficiency of programs and to present some standard Lisp idioms that are used in writing efficient code. Readability and elegance of structure are worth more than 'saving a few microseconds' in many cases. On the other hand, coding style that increases the computational complexity of a program can make it impossible to solve the desired problem, or make the program so slow that it is not usable in practice. For motivation, we have provided some small functions, written with only minor differences in the ways they are coded, but with striking differences in performance."

Also introduces computational complexity, O(n) notation, and why CONS is expensive. Explains which functions do CONSing under the hood, and where it is safe to use non-CONSing functions.