THE SCHEME PROGRAMMING LANGUAGE
Third Edition

Written by R. Kent Dybvig

Illustrations by Jean-Pierre Hébert

From the back cover

This thoroughly updated edition of The Scheme Programming Language provides an introduction to Scheme and a definitive reference for standard Scheme, presented in a clear and concise manner.

Written for professionals and students with some prior programming experience, it begins by leading the programmer gently through the basics of Scheme and continues with an introduction to some of the more advanced features of the language. Many exercises are presented to help reinforce the lessons learned, and answers to the exercises are given in a new appendix.

Most of the remaining chapters are dedicated to the reference material, which describes in detail the standard features of Scheme included in the Revised$^5$ Report on Scheme and the ANSI/IEEE standard for Scheme.

Numerous examples are presented throughout the introductory and reference portions of the text, and a unique set of extended example programs and applications, with additional exercises, are presented in the final chapter. Reinforcing the book's utility as a reference text are appendices that present the formal syntax of Scheme, a summary of standard forms and procedures, and a bibliography of Scheme resources.

The Scheme Programming Language stands alone as an introduction to and essential reference for Scheme programmers. it is also useful as a supplementary text for any course that uses Scheme.

The Scheme Programming Language is illustrated by artist Jean-Pierre Hébert, who writes Scheme programs to extend his ability to create sophisticated works of digital art.

R. Kent Dybvig is Professor of Computer Science at Indiana University and principal developer of Chez Scheme.

"Eric Raymond once wrote that learning Lisp makes one a better programmer for the rest of one's days. Scheme is the best dialect of Lisp to learn for this purpose, and Kent Dybvig's book provides a comprehensive and beautiful introduction to learning Scheme and becoming a better programmer."
---Olivier Danvy, BRICS, University of Aarhus, Denmark, co-editor-in-chief of Higher-Order and Symbolic Computation

"Kent Dybvig's The Scheme Programming Language is to Scheme what Kernighan and Ritche's The C Programming Language is to C."
---Daniel P. Friedman, Indiana University

"I have been using previous editions of The Scheme Programming Language in my Programming Language Concepts class for 13 years. The students need to learn the basics of Scheme in a few days, and then to pick up some of the harder concepts as the course progresses. This terse but complete book with its excellent examples fits the bill perfectly. Students quickly learn a lot from this book, and many of them make a point of telling me how much they like it."
---Claude Anderson, Professor of Computer Science and Software Engineering, Rose-Hulman Institute of Technology

About the typesetting process

The printed version of this book was created with LaTeX from extended LaTeX sources with the help of a preprocessor written in Scheme. The preprocessor handles extensions for incorporating arbitrary verbatim Scheme code and various other features not directly supported by LaTeX.

The HTML version was created from the preprocessed sources for the printed version by a separate Scheme program that performs a LaTeX to HTML conversion. In addition to the extended LaTeX source files, this program takes as input the .aux and .bbl files produced by a complete LaTeX/BibTeX run of the document in order to support labels and page references in the text, summary of forms, and index. As it runs, the program produces a .haux file containing urls for the labels, bibliographic entries, and index entries; as with LaTeX, a second run of the program is needed to achieve proper cross-referencing.

Most of the images and certain mathematical formulas included in the HTML version were produced with the help of LaTeX, dvips, ghostscript, and various programs from the netpbm library.