This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home. For a version of this page that may be more recent, see ReadMutable in WG2's repo for R7RS-large.

Read­Mutable

cowan
2016-04-20 00:35:12
1history
source

The following test from the REPL was used to determine which Schemes, if any, return immutable pairs from calling read on the input (a . b):

(define x (read)) (a . b) (set-car! x 'b) x

Output (b . b) per R![57]RS: Gauche, MIT, Gambit, Chicken, Bigloo, Scheme48/scsh, Guile, Kawa, SISC, Detroit, SCM, Chez, Vicare, Larceny, Ypsilon, Mosh, JScheme, STklos, KSi, SigScheme, MiniScheme, TinyScheme, Scheme 9, RScheme, Unlikely, SIOD, BDC, XLisp, Elk, SXM, Sizzle, FemtoLisp, Sagittarius, Foment, Picrin, Chibi

All pairs are immutable: Racket, Owl Lisp

No usable read: Shoe, UMB, Llava

Can't read from command line: IronScheme, S7, Dfsch, Inlab

No set-car!: Rep

Returned pair is immutable: JScheme