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.
Source for wiki CaseSensitivity version 4
author
steven_ganz
comment
ipnr
67.188.102.79
name
CaseSensitivity
readonly
0
text
Historically one of the most heated flame-wars in the Scheme
community. We have to decide whether we want to preserve backwards
compatibility with standards up through the R5RS, or reaffirm the
switch to case-sensitivity in the R6RS. The charter gives precedence
to the former, so unless we can reach a rough consensus (> 90%) to the
contrary, the default should remain case-insensitive.
Whatever we choose we should realize that some implementations are likely
to use a different default in their preferred environments.
Note that the default case-sensitivity is orthogonal to the issue of
whether and how behavior can be toggled on a per-file or
per-expression basis. If there is a toggle, it may be specified by
WG1 for both groups, or only by WG2.
Below are some common arguments for each side.
'''Pro-folding:'''
* R[0-5]RS and IEEE Scheme compatible
* code from R5RS and before continues to work
* possibly easier for beginners not expecting case distinctions to be significant
* allows using different cases as stylistic differences in source
* prevents using separate identifiers which differ only in case
* less confusion when code is read aloud, e.g. variable names
'''Pro-preserving:'''
* R6RS compatible
* the popular default in a number of modern implementations
* easier compatibility with external data (XML, some filesystems, FFIs)
* using different cases for the same identifier can be confusing
* transliterations of math formulae may be easier to read with case distinctions
* more general - can write a (begin/ci ...) macro to implement the alternative
* allows using separate identifiers which differ only in case (for example capitalizing a class but not an instance)
time
2010-02-12 17:45:39
version
4