On this page:
SICP Solutions
8.16

SICP Solutions🔗

Welcome to my documentation.

    1 Chapter 1. Building Abstractions with Procedures

      1.1 The Elements of Programming

        1.1.1 Expressions

        1.1.2 Naming and Environment

        1.1.3 Evaluating Combinations

        1.1.4 The Substitution Model for Procedure Application

        1.1.5 Conditional Expressions and Predicates

          1.1.5.1 Exercise 1.1

          1.1.5.2 Exercise 1.2

          1.1.5.3 Exercise 1.3

          1.1.5.4 Exercise 1.4

          1.1.5.5 Exercise 1.5

          1.1.5.6 Exercise 1.6

          1.1.5.7 Exercise 1.7

          1.1.5.8 Exercise 1.8

    2 Chapter 2. Building Abstractions with Data

      2.1 Hierarchical Data and the Closure Property

        2.1.1 Example: A Picture Language

          2.1.1.1 Exercise 2.44

          2.1.1.2 Exercise 2.45

          2.1.1.3 Exercise 2.46

          2.1.1.4 Exercise 2.47

          2.1.1.5 Exercise 2.48

          2.1.1.6 Exercise 2.49

          2.1.1.7 Exercise 2.50

          2.1.1.8 Exercise 2.51

      2.2 Systems with Generic Operations

        2.2.1 Generic Arithmetic Operations

          2.2.1.1 Exercise 2.77

          2.2.1.2 Exercise 2.78

          2.2.1.3 Exercise 2.79

          2.2.1.4 Exercise 2.80

    3 Chapter 3. Modularity, Objects, and State

      3.1 The Environment Model of Evaluation

        3.1.1 The Rules for Evaluation

        3.1.2 Apply Simple Procedures

          3.1.2.1 Exercise 3.9

        3.1.3 Frames as the Repository of Local State

          3.1.3.1 Exercise 3.10

        3.1.4 Internal Definitions

          3.1.4.1 Exercise 3.11

      3.2 Modeling with Mutable Data

        3.2.1 A Simulator for Digital Circuits

          3.2.1.1 Exercise 3.28

          3.2.1.2 Exercise 3.29

          3.2.1.3 Exercise 3.30

        3.2.2 Propagation of Constraints

          3.2.2.1 Exercise 3.33

          3.2.2.2 Exercise 3.34

          3.2.2.3 Exercise 3.35

          3.2.2.4 Exercise 3.36

          3.2.2.5 Exercise 3.37

      3.3 Streams

        3.3.1 Streams Are Delayed Lists

          3.3.1.1 Exercise 3.50

          3.3.1.2 Exercise 3.51

          3.3.1.3 Exercise 3.52

        3.3.2 Infinite Streams

    4 Chapter 4. Metalinguistic Abstraction

      4.1 The Metacircular Evaluator

        4.1.1 The Core of the Evaluator

          4.1.1.1 Exercise 4.1

        4.1.2 Representing Expressions

          4.1.2.1 Exercise 4.3

          4.1.2.2 Exercise 4.4

          4.1.2.3 Exercise 4.5

          4.1.2.4 Exercise 4.6

          4.1.2.5 Exercise 4.7

          4.1.2.6 Exercise 4.8

          4.1.2.7 Exercise 4.9

          4.1.2.8 Exercise 4.10

        4.1.3 Evaluator Data Structures

          4.1.3.1 Exercise 4.11

          4.1.3.2 Exercise 4.12

    5 Chapter 5. Computing with Register Machines

      5.1 Designing Register Machines

        5.1.1 A Language for Describing Register Machines

          5.1.1.1 Exercise 5.1

          5.1.1.2 Exercise 5.2

          5.1.1.3 Exercise 5.3