Skip to content

falko17/sicp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SICP Exercises

My implementations of the exercises in Structure and Interpretation of Computer Programs.

I chose1 Racket as the programming language to do this, which helpfully has an sicp package nowadays for full compatibility with the Scheme variant used in the book. I will try to go through every single exercise, but we'll see how realistic that actually is. Otherwise, I can recommend Eli Bendersky's blogposts about SICP, and there are extensive solutions in the Scheme Wiki (although the latter contains a few arguments/back-and-forth in some places2).

Progress

  • Chapter 1: Building Abstractions with Procedures
    • Chapter 1.1: The Elements of Programming
    • Chapter 1.2: Procedures and the Processes They Generate
    • Chapter 1.3: Formulating Abstractions with Higher-Order Procedures
  • Chapter 2: Building Abstractions with Data
    • Chapter 2.1: Introduction to Data Abstraction
      • (Note: Failed Exercise 2.13 and skipped Exercise 2.16.)
    • Chapter 2.2: Hierarchical Data and the Closure Property
    • Chapter 2.3: Symbolic Data
    • Chapter 2.4: Multiple Representations for Abstract Data
    • Chapter 2.5: Systems with Generic Operations
  • Chapter 3: Modularity, Objects, and State
    • Chapter 3.1: Assignment and Local State
    • Chapter 3.2: The Environment Model of Evaluation
    • Chapter 3.3: Modeling with Mutable Data
    • Chapter 3.4: Concurrency: Time Is of the Essence
    • Chapter 3.5: Streams
  • Chapter 4: Metalinguistic Abstraction
    • Chapter 4.1: The Metacircular Evaluator
    • Chapter 4.2: Variations on a Scheme — Lazy Evaluation
    • Chapter 4.3: Variations on a Scheme — Nondeterministic Computing
    • Chapter 4.4: Logic Programming
  • Chapter 5: Computing with Register Machines
    • Chapter 5.1: Designing Register Machines
    • Chapter 5.2: A Register-Machine Simulator
    • Chapter 5.3: Storage Allocation and Garbage Collection
    • Chapter 5.4: The Explicit-Control Evaluator
    • Chapter 5.5: Compilation

Footnotes

  1. As recommended by Gwern in his SICP introduction.

  2. See, for example, here.

About

My implementations of the exercises in Structure and Interpretation of Computer Programs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors