[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] fresh empty strings
On 01/24/2012 11:04 AM, John Cowan wrote:
> Ray Dillinger scripsit:
>> It's not clear to me that, in a unicode universe, there's a useful
>> distinction between characters and strings of length 1. At the very
>> least, character operations such as case and other such mappings
>> are not closed on the set of single codepoints, which makes
>> treating "character" separately from "string" semantically
> I agree wholeheartedly. Unfortunately, characters and mutable strings are
> IEEE Scheme features, so the bar for removing them is very high. Both
> R6RS and R7RS make character and string casing operations inconsistent:
> \#ß upcases to itself, whereas "ß" upcases to "SS". (There is a capital
> sharp S in Unicode, but it is normally used only in display text such
> as headlines; it downcases to the ordinary sharp S but not vice versa,
> so in this respect Unicode is intentionally self-inconsistent.)
In other words: mutable fixed-length strings are effectively useless,
but we have to have mutable strings. Solution: make them variable-length.
That just requires adding a few functions like string-replace-substring
to make mutable strings into something actually usable. The normal
implementation could be a simple buffer-gap.
Is there an prior art for doing anything like that? I'm inclined to
do this for Kawa, whatever R7RS does.
Scheme-reports mailing list