(a) What Scheme systems these ran on at the time
The Makefile in the source tarball from the author's website has targets for running the code under bigloo, elk, gambit, mit-scheme, scheme2c, and scm.
The Makefile mentions SCM 4e1 and Bigloo 1.9d as known working versions, though I haven't tested them myself. I didn't find any mention of specific versions for the other schemes.
(b) What Scheme systems these would run on today?
The code in this github repo has been updated so that almost all of the tests in the included test suite pass with current (as of 06/2014) versions of bigloo, gambit, and mit-scheme.
If you just want to be able to run the code and follow along with the book, one of those schemes should work for you.
[full disclosure: I'm the owner of the repo and I'm a Scheme noob. The code in the repo is WOMM certified, but your mileage may vary.]
If, on the other hand, you're not content to use bigloo / gambit / mit-scheme, it shouldn't be too hard to add support for guile / racket / insert-favorite-scheme-here. Use one of the book.*
files as a starting point, e.g. gambit/book.scm
or mitscheme/book.mit
. If you can get a version of book.scm
to load in your favorite scheme, then have a look at the test.interpreters
make target, and finally the grand.test
target to verify things are working as expected.
let
then it will work only on drScheme or racket, and drScheme is not real scheme because real scheme don't use brackets. – Northern(let ([x 10]) (* x x))
throwBad binding [x in expression (let ([x 10]) (* x x)). ABORT: (syntax-error)
the same if I call[* 10 20]
it throwUnbound variable: [*
display 10 and then throwUnbound variable: 20]
– Northern