[R6RS] Case-sensitivity

Michael Sperber sperber at informatik.uni-tuebingen.de
Tue Feb 21 12:57:34 EST 2006

[Generating a lot of interest, this lexical syntax.  Semantics,

dyb at cs.indiana.edu writes:

> I'm inclined to put case-sensitivity into R6RS as we decided and see if
> the community squawks about it.  

It was already in the first (or second?) status report, and the
community is already squawking---no "if" about it.  Sample:


(... and the current discussion on c.l.s, of course.)

> It's not the sort of change that will be hard to back out, so it
> hardly matters whether we poll the community now or when the report
> goes out.
> Each of us who voted for the change did have one or more rationales for
> making the change, and it's a good idea to list them.  We should also
> list the arguments against.

I don't think listing the arguments will do much good, but OK.  For
the record:

> My list of arguments for case-sensitivity:
>   - it gives me a larger set of identifiers of a given length to work with
>   - it allows me to use the same name, differentiated by case, for
>     related items, like a record type named Frob and instances named frob
>     or a procedure named Expr that processes expressions named expr.
>   - it allows Scheme identifiers to represent more identifiers from other,
>     case-sensitive, languages (for construting interfaces or modeling
>     other languages), with less need for escapes like |---|.
>   - it puts us in step with the most popular contemporary computer languages
>     (C, C++, Haskell, Java, Perl, etc.)
>   - it puts us out of step with Ada, Basic, Cobol, and PL/I
>     (this is a joke...actually I don't really care about these languages)
>   - it is more consistent with math, where case often matters 
> My list of arguments against case-sensitivity:
>   - not backward compatible with some r5rs programs

- it doesn't allow me to use different cases for the same identifier,
  highlighted according to context, like backquote-generated code
  where the keywords are in all-uppercase

- it puts us out of step with the most popular contemporary computer
  languages (SQL, Visual basic, HTML, the filesystems on Mac OS X and

- it goes against the intuition of many newcomers to the language

- it encourages the use of identifiers only differentiated by case,
  which is sufficiently confusing that some projects, after
  implementing case-sensitivity, immediately establish a convention
  that code must not make use of it

Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla

More information about the R6RS mailing list