[R6RS] Case sensitivity

Marc Feeley feeley
Mon Nov 1 20:36:08 EST 2004

> >>>>> "Marc" == Marc Feeley <feeley at IRO.UMontreal.CA> writes:
> Marc> 3) The meaning of "case-insensitivity" does not depend on natural
> Marc>    language.  In Turkish, "i" is *not* the lower-case variant of "I"
> Marc>    (it is dotless-i).  In some natural languages, case is important
> Marc>    (isn't German one of those languages?).
> Yes, but no German cares.

How can you be so sure?  I asked my wife (as you know she is German)
and she gave me several good examples of German words that you might
find in a program and that have different meanings when the initial
letter's case is changed:

  arm (poor)          Arm (arm)
  gut (good)          Gut (posession)
  haben (to have)     Haben (plus column, accounting term)
  leben (to live)     Leben (life)
  quellen (to swell)  Quellen (sources)
  zahlen (to pay)     Zahlen (numbers)

I could give you similar examples for French (but concerning accents,
not case).  My point is that a programming language should not force
you to avoid certain perfectly valid words in your natural language
because their meaning is not preserved.  Case-insensitivity may
"work" for English, but not for some other natural languages.

>   Moreover, Unicode does have a
> locale-insensitive case mapping we could use.

Unicode's locale-insensitive case mapping is fine at the programmatic
level (i.e. specification of char-upcase, etc) but not for the lexical
syntax of the language, because that locale-insensitive mapping *is*
locale-insensitive (i.e. it may not correspond to the case-mapping
of the programmer's natural-language).


More information about the R6RS mailing list