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

Unicode­Support

cowan
2014-05-04 04:59:40
4history
source

I examined the results of (integer->char 256), the first Unicode character outside the 8-bit range; (integer->char 65536), the first Unicode character outside the Basic Multilingual Plane; (integer->char 128), the first non-ASCII character; and (integer->char 0), the ASCII NUL character. I then attempted to wrap each character in a string. In all cases where it was possible to create such a string, it correctly had a length of 1.

Characters

Full support: Racket, Gauche, Gambit, MIT, Chicken, Scheme48/scsh, Guile, Kawa, Chez, Vicare, Larceny, Ypsilon, Mosh, STklos, KSi, SigScheme, XLisp, BDC, Foment, Owl Lisp, Chibi

Characters 0-65535 only: RScheme, SISC, IronScheme, NexJ, JScheme

Characters 0-255 only: Bigloo, SCM, Shoe, TinyScheme, Scheme 9, S7, UMB, Elk, SXM, Sizzle, Inlab

No integer->char procedure: Rep, Schemik, Llava, FemtoLisp, Dfsch

Strings

Full support: Racket, Gauche, Gambit, Chicken, Scheme48/scsh, Guile, Kawa, Chez, Vicare, Larceny, Ypsilon, Mosh, STklos, KSi, SigScheme, XLisp, BDC, Foment, Owl Lisp, Chibi

Characters 0-65535 only: SISC, IronScheme, NexJ, JScheme

Characters 0-255 only: MIT, Bigloo, RScheme, SCM, Shoe, TinyScheme, Scheme 9, S7, UMB, Elk, SXM, Sizzle, Inlab

No integer->char procedure: Rep, Schemik, Llava, FemtoLisp, Dfsch

Identifiers

I tried to define the identifier π with the value 3.141592653 and then evaluate it.

Successful: Racket, Gauche, Gambit, Chicken, Bigloo, Scheme48/scsh, Guile, Kawa, SISC, SCM, Chez, Vicare, Larceny, Ypsilon, Mosh, IronScheme, NexJ, JScheme, STklos, KSi, SigScheme, Shoe, TinyScheme, RScheme, S7, BDC, UMB, Elk, Llava, Sizzle, FemtoLisp, Dfsch, Inlab, Foment, Owl Lisp, Chibi

Unsuccessful: MIT, Chez (can't enter π at the REPL), Scheme 9, XLisp, Rep, Schemik, SXM

This test often succeeds because many Schemes treat anything that is not numeric or a delimiter as an identifier, even if they only understand 8-bit encodings.