[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
Scheme-reports@x
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports