[R6RS] Case sensitivity
Mon Nov 1 07:10:04 EST 2004
> I'd appreciate if people added to this list. I remember Will hinting
> at some more arguments that weren't clear to me. I'd also like to
> have a little debate over the "interoperability argument" eventually.
Here are a few more arguments in the "For" camp.
1) Kent pointed out that in his code, when using a case-sensitive
syntax, it is convenient for certain types of programs (compilers,
transformers, ...) to name the transformation function and the
parameter using the same name, but with a different case, such as:
(define (Expr expr) ...) instead of (define (process-expr expr) ...)
2) In a FFI, it is convenient to have case-sensitive symbols to name C/C++
types or C functions. Otherwise strings would have to be used, or
specially escaped symbols, but this is clumsy as soon as you have more
than a few types in your FFI declarations (yes it is a matter of taste).
3) The meaning of "case-insensitivity" does not depend on natural
language. In Turkish, "i" is *not* the lower-case variant of "I"
(it is dotless-i). In some natural languages, case is important
(isn't German one of those languages?). We should avoid specifying
the lexical syntax of Scheme in such a way that cultural
conventions can't be followed.
I have a feeling we are beating on a dead horse and that further
discussion on this topic should be held to a minimum, unless the
editors are unsure what their vote intentions are. As I recall, the
editors at the Snowbird meeting seemed in favor of a switch to a
case-sensitive syntax, as long as the user-community was willing also.
The vote at the workshop was 22-3 in favor of a case-sensitive syntax,
which is a clear message.
More information about the R6RS