The 1965 LISP 1.5 programmer’s manual needed only 106 pages to completely describe the language. The second edition of Steele’s book uses 1029 pages to achieve the same purpose. This difference shows how much the language has grown over its 30-year history. Much of its recent growth is due to the first edition of this book, which helped reunite the various dialects into a common standard that was then adopted as the LISP of choice on machines from workstations to supercomputers.
Steele’s book contains 29 chapters, three appendices, and several indexes:
Series
Generators and Gatherers
Backquote
The last four chapters are new to this edition. Other chapters contain numerous revisions where decisions of ANSI subcommittee X3J13 have altered or added to the language described in the first edition. For those who remain concerned with the old language, the older descriptions remain, marked with dotted lines in the margin to indicate their obsolescence. In his preface, the author indicates that the purpose of the second edition is to “bridge the gap between the first edition and the forthcoming ANSI standard for Common Lisp.” The book has also inherited the goal of the first edition--to describe Common Lisp in such a way that it can be implemented on a variety of platforms and serve as a useful platform in artificial intelligence and other areas. The book clearly achieves its purpose. The format makes the differences between the old language and the likely ANSI standard quite clear, and the new edition should only continue the flood of Common Lisp implementations.
This book is not for everyone, however. It assumes that the reader already has a strong knowledge of LISP, and it dives right into the details. Even a reader familiar with the language may have some difficulties in sections that describe new features. I was sometimes reminded of computer reference manuals that describe all of the options but provide no clues as to when these options might be useful, especially in the chapter on CLOS.
For those who need all the details of Common Lisp, this book will be indispensable, at least until the ANSI standard is approved. It is the definition of the language; accept no substitutes. Those who wish to learn the language might want to use this book in conjunction with some other more introductory text, using the other text as a life preserver to help keep their heads above water when the material here gets deep.