SICP - racket/racket GitHub Wiki

The best way to learn from SICP(or anything) is to do the exercises, and a great way to do the exercises in SICP with the minimum of distractions is to use the version of Scheme used by the book. The SICP compatibility language is one of the best ways to do this: https://docs.racket-lang.org/sicp-manual/

From the manual:

“The programs in the book (SICP) are written in (a subset of) the programming language Scheme. As the years have passed the programming language Scheme has evolved. The language #lang sicp provides you with a version of R5RS (the fifth revision of Scheme) changed slightly in order for programs in SICP to run as is.” - https://docs.racket-lang.org/sicp-manual

To use the SICP language:

  1. install Racket at https://racket-lang.org
  2. Install the SICP package https://docs.racket-lang.org/sicp-manual/Installation.html
  3. use #lang sicp as the first line of your program.

**Included: the picture language used in SICP. **

(You can also use Racket libraries)

If you run into problems don’t be afraid to ask questions on the Racket Slack or Racket Users mailing list. New learners are always welcome. (Many Racket users are also Emacs Lisp, Clojure, Common Lisp and Scheme users.)

Editor/IDE: You can use the SICP compatibility language with your preferred editor.