Annotations on Graham's ANSI Common Lisp

General Comments

Graham has an excellent Lisp coding style. His code is maintainable and portable. Function definitions are short and well-motivated, and, for the most part, variable and function names are clear and helpful. Exceptions are noted below.

However, there are a few areas where Graham's coding style should not be considered typical:

Strong preference for if rather than cond , even when using if leads to nested if 's or embedded progn 's.

rather than , even when using leads to nested 's or embedded 's. Strong distaste for loop , because it is so complex and different from the functional programming style. Sometimes, however, loop is the clearest simplest way to write something.

, because it is so complex and different from the functional programming style. Sometimes, however, is the clearest simplest way to write something. Preference for recursion over iteration, even if it might lead to code that causes stack overflows on very long lists.

Here are more detailed comments on particular chapters:

Comments? Send mail to Chris Riesbeck.