For this class, we will be using an implementation of Scheme called Scheme48. To get started with the installation on turing:
If you find the Scheme Report excessively terse, you might want to order the following book (e.g. from www.amazon.com).
In addition to the basic features of scheme, Scheme48 comes with a variety of extensions and library functions, grouped into "modules". See the
The on-line documentation is variable. For some features, it's fairly explicit. For a few features, even I don't understand what they mean. The documentation may refer you to comments in the source code (e.g. "see comments at top of big/search-tree.scm"). On turing these code files can be found in /usr/local/vision/scheme/scheme48-0.51/src/scheme and its subdirectories (e.g. big, misc, rts).
To load a module named foo into scheme, type the following at the scheme prompt. Depending on the module, scheme may or may not ask if you want to load this structure: if so, answer affirmatively (y).
,open foo
The following modules are pre-installed in the class binary: floatnums, signals, define-record-types, arrays, features, formats, pp, general-tables, sort, util, big-util, receiving, random.
Scheme48 runs on most versions of Unix (Sun, Linux, HP, SGI for sure). There is apparently also a Windows version, but I haven't used it myself.
To install scheme48 on a home Linux machine:
The latest version on Kelsey's page is 0.52. The class binary is built from version 0.51. As the term progresses, Kelsey may issue updated versions and/or I may update the class binary. The versions differ in minor ways, so I doubt you will notice any differences unless you are doing something unusual.
The class binary on turing has a variety of code pre-loaded. After you have the basic scheme binary working, you will need to make a second binary with this additional code. To do this:
Some extra code is located in fleck-utils.scm. You will need to get a copy of this file and load it into scheme with a command like:
,load /yourdirectory/fleck-utils.scm
The dump command takes two arguments: a filename for the new binary, and a string comment that will be printed when the binary is run. For xample:
,dump /home/bill/myscheme "Socks tracking code preloaded"
This page is maintained by Margaret Fleck.