sicp.io
Back to the course

Chapter 4 · Metalinguistic Abstraction

23 runnable lessons across 4 sections of the original book.

Start

Section 4.1 · The Metacircular Evaluator

10 lessons

  1. 4.1.1Eval classifies expressions; apply completes applications.Open lesson
  2. 4.1.2A special form chooses what gets evaluated.Open lesson
  3. 4.1.3A program can inspect a program as data.Open lesson
  4. 4.1.4Rewrite new syntax into a rule the evaluator already knows.Open lesson
  5. 4.1.5Frames, procedures, booleans, and argument lists are evaluator data.Open lesson
  6. 4.1.6An environment gives a symbol its value.Open lesson
  7. 4.1.7The evaluator can read a finite program and preserve its environment.Open lesson
  8. 4.1.8A program can be constructed, transformed, inspected, and then evaluated.Open lesson
  9. 4.1.9An evaluator can make local initialization explicit.Open lesson
  10. 4.1.10Analyze once, then run the plan many times.Open lesson

Section 4.2 · Variations on Scheme and Lazy Evaluation

4 lessons

  1. 4.2.1Evaluation order decides when an argument becomes work.Open lesson
  2. 4.2.2A memoized thunk performs demanded work at most once.Open lesson
  3. 4.2.3A thunk delays work and remembers its value.Open lesson
  4. 4.2.4A lazy evaluator can make an ordinary procedure behave like non-strict cons.Open lesson

Section 4.3 · Variations on Scheme and Nondeterministic Computing

3 lessons

  1. 4.3.1Keep every successful choice instead of committing early.Open lesson
  2. 4.3.2Failure resumes the next saved alternative.Open lesson
  3. 4.3.3A puzzle states choices and constraints; failure resumes the next choice.Open lesson

Section 4.4 · Logic Programming

6 lessons

  1. 4.4.1A rule turns one query into a sequence of smaller goals.Open lesson
  2. 4.4.2A query transforms a stream of frames into another stream of frames.Open lesson
  3. 4.4.3A frame records only consistent pattern bindings.Open lesson
  4. 4.4.4Closed-world negation requires a complete fact boundary.Open lesson
  5. 4.4.5A recursive rule needs a visible search boundary.Open lesson
  6. 4.4.6Unification joins assertions and renamed rules under one frame protocol.Open lesson

Chapter checkpoint

Reconnect the chapter’s key ideas before moving on.

Review