After a long night tossing and turning over this argument, I have to declare
that, with GREAT reluctance, I've come around to accepting that if we're
serious about supporting Unicode then case-sensitivity has to be the
canonical (default) behavior, for international portability of code.

I humbly beg that there be an easy way to write an initialization file for
a REPL (not just a header you can put in a file whose scope is limited to
that file) allowing for case folding.  And, to avoid discriminating against
those Turks (and the Germans who were the main focus of debate in the pre-R6
discussion), a way to localize char-ci=? and/or string-ci=?.  Some uses of
Scheme /don't/ involve trying to write portable code, and we shouldn't make
current uses impossible if those users (like me) make a deliberate choice
to do something non-portable.

I hate this decision -- I think it's intellectually the wrong thing.  I don't
believe that English is the only language in which capitalization happens
without a change in the meaning of the word, and I'd rather see a slew of
language-specific folding algorithms instead of no folding algorithm.

But what I was missing is that this isn't a technical question; it's a
political one.  I'm accustomed -- we're all accustomed -- to hearing people
say "such-and-such can't be done; it'd be too complicated" and seeing that
by being Schemely we can cut through the complexity and make The Right Thing
be /easier/ than their wrong thing.  But that only works when the problem is
communicating with a computer, not when the problem is communicating with
another person.

One thing still confuses me about the Turkish example.  If their case-folding
algorithm shuffles the vowels around, does that mean that you can't do
lexicographic sorting in Turkish based on Unicode values?  Wouldn't they be
better served by having their own entire chunk of the code space in which the
characters would appear in Turkish lexicographic sort order?  (I realize that
that exacerbates the already harrowing problem of characters that look the
same but have different Unicode values.)

One big factor in changing my mind was thinking about the case of standard
mathematical notation.  I /did/ mean it about mathematicians being the ones
to get extra votes, and I have to admit that they've implicitly voted pretty
overwhelmingly against case-insensitivity.  Thinking about this makes me
feel sorry for blind mathematicians, though!

But in my own practice I'm going to keep on case-folding.  If R7RS makes that
easy, I'll be happy to keep up with it; if not, well, I have a working R5
Scheme that probably won't succumb to software rot before I retire.

Thanks to everyone, on both sides, who's helped me understand this question,
especially Eli and Bear.


P.S.  I haven't changed my mind about REPL!  Scheme was invented by /hackers/,
I consider myself (in a small way) a hacker, and I want Scheme to honor the
practice of hacking -- of tinkering -- of figuring out what you're doing as
you do it.  If Scheme can simultaneously support people who want to develop
big planned well-organized projects, so much the better.  But it can't do the
latter at the expense of the former.

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to