The Scheme
Programming Language
Third Edition
R. Kent Dybvig
Illustrations by Jean-Pierre Hébert
Table of Contents
Preface
Chapter 1. Introduction
Section 1.1. Scheme Syntax
Section 1.2. Scheme Naming Conventions
Section 1.3. Typographical and Notational Conventions
Chapter 2. Getting Started
Section 2.1. Interacting with Scheme
Section 2.2. Simple Expressions
Section 2.3. Evaluating Scheme Expressions
Section 2.4. Variables and Let Expressions
Section 2.5. Lambda Expressions
Section 2.6. Top-Level Definitions
Section 2.7. Conditional Expressions
Section 2.8. Simple Recursion
Section 2.9. Assignment
Chapter 3. Going Further
Section 3.1. Syntactic Extension
Section 3.2. More Recursion
Section 3.3. Continuations
Section 3.4. Continuation Passing Style
Section 3.5. Internal Definitions
Chapter 4. Procedures and Variable Bindings
Section 4.1. Variable References
Section 4.2. Lambda
Section 4.3. Local Binding
Section 4.4. Variable Definitions
Section 4.5. Assignment
Chapter 5. Control Operations
Section 5.1. Procedure Application
Section 5.2. Sequencing
Section 5.3. Conditionals
Section 5.4. Recursion, Iteration, and Mapping
Section 5.5. Continuations
Section 5.6. Delayed Evaluation
Section 5.7. Multiple Values
Section 5.8. Eval
Chapter 6. Operations on Objects
Section 6.1. Constants and Quotation
Section 6.2. Generic Equivalence and Type Predicates
Section 6.3. Lists and Pairs
Section 6.4. Numbers
Section 6.5. Characters
Section 6.6. Strings
Section 6.7. Vectors
Section 6.8. Symbols
Chapter 7. Input and Output
Section 7.1. Input Operations
Section 7.2. Output Operations
Section 7.3. Loading Programs
Section 7.4. Transcript Files
Chapter 8. Syntactic Extension
Section 8.1. Keyword Bindings
Section 8.2. Syntax-Rules Transformers
Section 8.3. Syntax-Case Transformers
Section 8.4. Examples
Chapter 9. Extended Examples
Section 9.1. Matrix and Vector Multiplication
Section 9.2. Sorting
Section 9.3. A Set Constructor
Section 9.4. Word Frequency Counting
Section 9.5. Scheme Printer
Section 9.6. Formatted Output
Section 9.7. A Meta-Circular Interpreter for Scheme
Section 9.8. Defining Abstract Objects
Section 9.9. Fast Fourier Transform
Section 9.10. A Unification Algorithm
Section 9.11. Multitasking with Engines
Bibliography
Answers to Selected Exercises
Formal Syntax of Scheme
Summary of Forms
Index