Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/falko17/sicp
- Owner: falko17
- Created: 2024-08-11T10:28:02.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2024-09-08T22:35:13.000Z (4 months ago)
- Last Synced: 2024-09-08T23:37:44.396Z (4 months ago)
- Language: Racket
- Size: 691 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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).