Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/falko17/sicp

My implementations of the exercises in Structure and Interpretation of Computer Programs.
https://github.com/falko17/sicp

Last synced: about 2 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# SICP Exercises
My implementations of the exercises in [Structure and Interpretation of Computer Programs](https://sarabander.github.io/sicp).

I chose[^1] Racket as the programming language to do this, which helpfully has an [`sicp` package](https://docs.racket-lang.org/sicp-manual/) 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](https://eli.thegreenplace.net/tag/sicp), and there are extensive solutions in the [Scheme Wiki](http://community.schemewiki.org/?SICP-Solutions) (although the latter contains a few arguments/back-and-forth in some places[^2]).

## Progress
- [x] Chapter 1: *Building Abstractions with Procedures*
- [x] Chapter 1.1: *The Elements of Programming*
- [x] Chapter 1.2: *Procedures and the Processes They Generate*
- [x] Chapter 1.3: *Formulating Abstractions with Higher-Order Procedures*
- [ ] Chapter 2: *Building Abstractions with Data*
- [ ] Chapter 2.1: *Introduction to Data Abstraction*
- [ ] 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*

[^1]: As recommended by [Gwern](https://gwern.net/sicp/introduction) in his SICP introduction.
[^2]: See, for example, [here](http://community.schemewiki.org/?sicp-ex-1.37).