Reading Structure and Interpretation of Computer Programs


A friend has started a «Structure and Interpretation of Computer Programs» (SICP) study group, and I’m lucky enough to be a member.

SICP is infamous in the Computer Science world; known as “The Wizard Book”, the New Hacker’s Dictionary describes it as “One of the bibles of the LISP/Scheme world”. Like many bibles: there’s more than one; it’s big and heavy; only about half of what’s in it is true.


SICP is one of my favourite books (possibly my all time favourite book), I’ve “read” it a couple of times. Probably never all the way to the end, and I’ve certainly never really got to grips with the harder material. It’s too easy to skim over convince yourself that you understand.

A study group gives the opportunity to get to grips with the exercises and provides a bit of peer pressure and hopefully more than a bit of peer support.

First lesson: Installing scheme

Short version: Installing things is still hard.

You can install CHICKEN scheme on Ubuntu with sudo apt-get install chicken-bin, but you don’t get readline, so up-arrow doesn’t work. Not friendly.

To get readline to work you have to install the readline extension for chicken. No, not with a Debian package, but with chicken’s own package installer: chicken-install. Ok.

chicken-install readline

Of course, that doesn’t actually make readline work. To make readline work, you have to add 3 secret lines to your .csirc file, documented in the “Beware of the Leopard” section of the chicken readline documentation:

In your .csirc

(use readline)
(current-input-port (make-readline-port))
(install-history-file #f "/.csi.history")

I weep.


3 Responses to “Reading Structure and Interpretation of Computer Programs”

  1. climatecode Says:

    Cool. SICP rocks. I wouldn’t bother with readline because I’d be running scheme in an Emacs shell buffer….

  2. That sort of thing annoys me too. I wish people wouldn’t invent new packaging systems but instead integrate with platform-level ones.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: