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 CaseInsensitivity in WG2's repo for R7RS-large.

Case­Insensitivity

cowan
2012-08-22 08:26:21
8history
source

Symbol case-sensitivity

Racket, Gauche, Gambit, Chicken, Bigloo, scsh, Guile, Kawa, Chibi, Chez, Vicare, Larceny, Ypsilon, Mosh, IronScheme, NexJ, KSi, SigScheme, Shoe, RScheme, Scheme 7, BDC, Rep, Schemik, Llava, Sizzle, Spark, Femtolisp, Dfsch, Owl Lisp return #f to (eq? 't 'T).

MIT, Scheme48, SISC, SCM, STklos, TinyScheme, Scheme 9, Dream, XLisp, Elk, UMB, VX, Oaklisp, SXM, Inlab return #t.

Preferred case is upper case

I also decided to check the case-insensitive implementations using (string=? (symbol->string 't) "T") to see which ones converted symbols to upper case internally. Only XLisp (which is not really Scheme-compliant) and Oaklisp (which is somewhat R3RS-compliant) did so.

Character name case-sensitivity

Is #\Space a valid constant?

Racket, Gauche, MIT, Bigloo, Scheme48, Guile, Kawa, Chibi, Chez, NexJ, STklos, KSi, SigScheme, TinyScheme, Scheme 9, Dream, RScheme, Rep, Elk, Oaklisp, Llava, SXM, Spark, Dfsch, Inlab accept #\Space.

Gambit, Chicken, scsh, Vicare, Ypsilon, Mosh, IronScheme, Shoe, Scheme 7, Schemik, UMB, Sizzle, FemtoLisp, Owl Lisp reject #\Space.

Boolean constant case-sensitivity

Gambit, TinyScheme, Scheme 7, VX, Sizzle, Owl Lisp do not accept #T as equivalent to #t.

The other Schemes in the test suite do.