We will be using Racket 6.10.1. You may download that version
here. Note that we will
test your code using the version of racket installed on
tux. You are
responsible for checking that your solution runs on tux.
Although Racket is a Scheme-derivative, it is not Scheme. Keep this is mind when you are reading SICP. See below for a discussion of some of the differences.
The main Racket web site can be found here. You may find the following documentation for version 6.10.1 useful
Racket Guide. A guide to getting started with racket. This is a friendly alternative to the Racket Reference.
Racket Reference. A precise description of the Racket language and its core libraries.
You can enter the Racket REPL (read-eval-print loop) by typing racket
tux or from within a terminal using the course VM. If you are using
Racket this way, you will want to read about
The course VM also provides a graphical interface, DrRacket, for working with Racket code. You can invoke DrRacket from the command line by typing drracket, from the launcher in the bottom-left corner of the screen (it looks like a red and blue yin-yang symbol), or from the Applications -> Programming menu in the upper-left corner of the screen.
drracket command is available on
tux as well, but you will need to
forward your X connection to use it.
We highly recommend that you use DrRacket.
DrRacket has a graphical debugger that lets you set breakpoints and step through code. There are also a number of racket functions that will help you debug your code. When debugging with DrRacket, you will find the following documentation useful:
Unfortunately there is not a comprehensive list of the differences between Racket and Scheme. The following links discuss some of the key differences.
Racket includes R5RS and R6RS compatibility layers. The documentation for these compatibility layers briefly comments on some of these differences.
Racket streams are not identical to streams as presented in SICP.