Sections covered since midterm:

3.5-3.5.2
4-4.1.6
4.2-4.4.3

3.5-3.5.2
streams (as delayed lists)
delayed evaluation (lazy evaluation)
force
delay
cons-stream (macro)
stream-versions of list operators
infinite streams
defining streams implicitly (directly in terms of recurrence relations.)

4-4.1.6
Metalinguistic abstraction (Language about language)
evaluator (interpreter)

metacircular evaluator (evaluator in language it evaluates)
syntax
implementation of microscheme
representing procedures, environments

4.2-4.4.3
lazy evaluation
thunks
streams as lazy lists
nondeterministic computing
generate and test
chronological backtracking
amb special form
require (constraint)
logic puzzles and natural language parsing
continuations (succeed, fail)
implementation based on microscheme
logic programming
rules
indexing of facts and rules
logic as programs
unification (pattern matching)