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
