. navigate
Book Review    Page 42 left arrow
right arrow Page 44    X3J13
Book Review

LISP Pointers
Volume I, Number 1
April-May 1987

Book Review
page 43

Prev Article               Start of This Article               Next Article

features as well. There is a whole chapter on input/output functions, including the use of streams, files, and pathnames. Another chapter explains common Lisp's use of property lists, arrays and vectors, hash tables, and structures. Fundamental control structures such as catch, throw, unwind-protect, and the iterative constructs are also explained. Other important and practical features taught include packages, optional and rest and keyword arguments, returning multiple values. There's also a chapter on what a Lisp compiler is, and how to use it, including the use of compiler declarations.

A particularly valuable chapter is the one on Lisp macros. The book explains what macros are for, and introduces defmacro and backquote, the modern macro-writing tools provided by Common Lisp. It goes on to explain macro-defining macros, and how to use nested backquotes. It demonstrates how defstruct can be implemented using macros. This explanation is sorely needed, because while it's easy to explain the basic mechanism of macros, it's much harder to explain how to effectively make use of macros.

A Programmeris Guide to Common Lisp starts from scratch, assuming that the reader has no prior knowledge of Lisp. Unfortunately, the introductory portion of the book has many problems. Objects are confused with the printed representations of objects. Terminology is not always consistent; for example, functions are sometimes called "commands." The eq function is explained in terms of the computer's "memory," where is ought to be explained in terms of the semantics of the Lisp language.

On the other hand, the extensive examples provided throughout the text are very helpful. They are extensive enough to present some of what's really interesting about Lisp. They're also designed to teach principles of programming practice, from style issues to the idea of abstract data types and incremental program development. The writing is clear, and good exercises and chapter summaries are provided.

In summary, A Programmer's Guide to Common Lisp's unique value is its coverage of modern Lisp features. It has some weaknesses as a beginner-level textbook on Lisp, but on the whole it's one of the best Lisp textbooks available.

Page Left left arrow         
right arrow Page Right
Vol. I, No. 1
Table of Contents

Home   Favorites   Computers   Map

IME logo Copyright © 2009, Mary S. Van Deusen