[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
>> dubious.
> 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.
	--Per Bothner
per@x   http://per.bothner.com/

Scheme-reports mailing list