In an ideal world, this page will grow and eventually list all solutions to sicp. Suggested guidelines:


Chapter 1. Building Abstractions with Procedures

1.1 The Elements of Programming

1.2 Procedures and the Processes They Generate

1.3 Formulating Abstractions with Higher-Order Procedures

Chapter 2. Building Abstractions with Data

2.1 Introduction to Data Abstraction

2.2 Hierarchical Data and the Closure Property

2.3 Symbolic Data

2.4 Multiple Representations for Abstract Data

2.5 Systems with Generic Operations

Chapter 3. Modeling with Mutable Data

3.1 Assignment and Local State

3.2 The Environment Model of Evaluation

3.3 Modeling with Mutable Data

3.4 Concurrency: Time Is of the Essence

3.5 Streams

Chapter 4. Metalinguistic Abstraction

4.1 The Metacircular Evaluator

4.2 Variations on a Scheme -- Lazy Evaluation

4.3 Variations on a Scheme -- Nondeterministic Computing

4.4 Logic Programming

Chapter 5. Computing with Register Machines

5.1 Designing Register Machines

5.2 A Register Machine Simulator

5.3 Storage Allocation and Garbage Collection

5.4 The Explicit-Control Evaluator

5.5 Compilation


I have solved as well most of the exercises. I tried to do them in a systematic and explanatory way so others can benefit from using them.


My solutions to the SICP book are available here:


Welcome to my github:


Just another repository with solutions:


This repo has resources I used to do the exercises including skeleton files with the exercise prompts converted to multiline scheme comments. My personal solutions for each exercise is on a branch.

repo --

solutions --


I have solved every exercise (although I cheated where possible, and didn't solve the "Fokker-Planck equation on computational graphs" in the exercise 3.79).

It's done in a reproducible way in an interactive notebook (org-mode on Emacs), and I have published a paper on Scheme Workshop 2020, with detailed measurements on how much time every exercise took.