[r6rs-discuss] Case-Sensitivity Optional, Case-Preservation Mandatory
erich at snafu.de
Mon Feb 23 12:19:24 EST 2009
> > I submit that all implementations MUST be case-preserving under
> > certain circumstances. Whatever is done to source code/data file input
> > MUST preserve case information if (a) the implementation provides a way
> > to retrieve the original symbols of the source data (i.e. the source
> > data is not compiled to something else entirely anyway), and (b) the
> > respective symbols are not mapped to another case explicitly.
> With respect, that seems to me utterly incoherent as stated. The essence
> of case-insensitivity is that foo and FOO are the same symbol; that is,
> when you "retrieve the original symbols of the source data" for these
> two spellings, they are eq? as symbols. How then can they be both eq?
> and distinguishable?
Hm, perhaps my formulation was a bit misleading, although I can't really
see you're point here. My suggestion was that an implementation in
case-insensitive mode still must preserve the case of symbols, not that
foo and FOO have to be eq?
I completely agree the two *symbols* should be eq? if the language is
set to being case-insensitive. But when you convert the symbols to
strings/unicode, foo has to yield "foo" and FOO has to yield "FOO", the
two strings not being string=? even when the language is set to being
That's pretty much what case preserving means, isn't it?
More information about the r6rs-discuss