Overview
Syllabus
Preface
1 Enter Scheme
2 Data types
2.1 Simple data types
2.1.1 Booleans
2.1.2 Numbers
2.1.3 Characters
2.1.4 Symbols
2.2 Compound data types
2.2.1 Strings
2.2.2 Vectors
2.2.3 Dotted pairs and lists
2.2.4 Conversions between data types
2.3 Other data types
2.4 S-expressions
3 Forms
3.1 Procedures
3.1.1 Procedure parameters
3.1.2 Variable number of arguments
3.2 apply
3.3 Sequencing
4 Conditionals
4.1 when and unless
4.2 cond
4.3 case
4.4 and and or
5 Lexical variables
5.1 let and let*
5.2 fluid‑let
5.3 Pseudorandom-number generators
6 Recursion
6.1 letrec
6.2 Named let
6.3 Iteration
6.4 Mapping a procedure across a list
7 I/O
7.1 Reading
7.2 Writing
7.3 File ports
7.3.1 Automatic opening and closing of file ports
7.4 String ports
7.5 Loading files
8 Macros
8.1 Specifying the expansion as a template
8.2 Avoiding variable capture inside macros
8.3 fluid‑let
9 Structures
9.1 Default initializations
9.2 defstruct defined
10 Alists and tables
11 System interface
11.1 Checking for and deleting files
11.2 Calling operating-system commands
11.3 Environment variables
12 Objects and classes
12.1 A simple object system
12.2 Classes are instances too
12.3 Multiple inheritance
13 Jumps
13.1 call‑with‑current‑continuation
13.2 Escaping continuations
13.3 Tree matching
13.4 Coroutines
13.4.1 Tree-matching with coroutines
13.4.2 Getting wet
14 Nondeterminism
14.1 Description of amb
14.2 Implementing amb in Scheme
14.3 Using amb in Scheme
14.4 Logic puzzles
14.4.1 The Kalotan puzzle
14.4.2 Map coloring
15 Engines
15.1 The clock
15.2 Flat engines
15.3 Nestable engines
16 Shell scripts
16.1 Hello, World!, again
16.2 Scripts with arguments
16.3 Example
17 CGI scripts
17.1 Example: Displaying environment variables
17.2 Example: Displaying selected environment variable
17.3 CGI script utilities
17.4 A calculator via CGI
A Scheme dialects
A.1 Invocation and init files
A.2 Shell scripts
A.3 define‑macro
A.4 load‑relative
B DOS batch files in Scheme
C Numerical techniques
C.1 Simpson’s rule
C.2 Adaptive interval sizes
C.3 Improper integrals
D A clock for infinity
E References
F Index
Taught by
Dorai Sitaram