Introducing the “SICP reading notes”

June 19th, 2007 at 5:12 am

I began a quest to read the whole SICP book (Structure and Interpretation of Computer Programs, available online here).

The plan is to:

  1. Read the book
  2. See all the video lectures by Sussman and Abelson themselves (available from here)
  3. Do most of the interesting exercises in the book
  4. Do some of the larger projects listed here and here

In order to stay faithful to this endeavor, I will post into this SICP category of my blog the “reading notes” – insights gained from the book, solutions to exercises and so on.

A minor twist: I will do all the exercises and projects in Common Lisp, instead of Scheme. The differences aren’t big, but I generally prefer CL to Scheme. Besides, this will ensure that I won’t just copy the code from the book mindlessly, but will rewrite it in CL – which will give me another chance to think it through.

There are several differences between Scheme and Common Lisp. Most of them are very minor, but there is a major one that is worth attention – Scheme is a single namespace Lisp (Lisp-1), while Common Lisp has two separate namespaces, for non-functions and for functions (Lisp-2). This is summed up nicely here, with a much more thorough discussion here, so I won’t dwell on the topic, but I might refer to it later when I present actual code.

Update (31.08.2007): I’ve decided to implement some of the exercises in Scheme, using PLT Scheme. Funny how quickly preferences change. While this post states that I prefer CL to Scheme, it kind-of turned around once I discovered PLT Scheme and worked with it a bit. Using both languages interchangeably will give me a good base of comparison.

Related posts:

  1. SICP – conclusion
  2. SICP – a midway recap
  3. Giving PLT Scheme a try
  4. SICP section 4.4
  5. SICP section 3.3.2

One Response to “Introducing the “SICP reading notes””

  1. Austin KingNo Gravatar Says:

    Eli, bravo and thanks for sharing your experience. The choice of CL is a cool twist, which should make you a stronger CL programmer for the effort, I would imagine.

    It’s too bad the word press software just has next / previous. I had to use google to find this page about using CL for SICP study, instead of an archive index page listing all 2007 posts by title.