We teach SICP as a first course, in parallel with a "standard" course
on algorithms and data structures in Scheme.
I designed the algo&data course with the following constraints in mind:
- the Scheme has to fit SICP. Both courses are first semester courses.
- I wanted a module/library language in order to illustrate ADTs with
multiple implementations.
- I want to be as close as possible to some standard.
Therefore, I decided to do R6RS without records etc. So I do use
mutable pairs.
Cheers
Wolf