[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: the discussion so far
Thomas Bushnell BSG scripsit:
> When you provide a function that does almost-the-right-thing, you are
> encouraging programmers to use it. The only case where you have
> identified a value to this function (when implemented as a simple
> radix comparator on codepoints) is when you have binary search trees
> which you want to exchange between scheme systems.
I picked that as a counterexample to the claim that there were no such
> Yet, this function will not be used only for that purpose. Instead,
> it will be used just as the R5RS function is: a general purpose way of
> sorting strings to alphebetize them for human-readable output.
Then document that it should not be used in that way.
> Any programmer, you see, who wants to write code that Does The Right
> Thing and uses this function, thinking, "oh, this will sort strings
> usefully for human readable output", will be wildly misled. On their
> scheme system it will be fine, but then on a fancy enough scheme
> system, with full Unicode support, their code will break.
> It would have been better to tell them "Scheme has no portable way to
> sort strings for human-readable output" than to provide a function
> which is almost right.
I quite agree that such a disclaimer is very much in order; I note that
R5RS does not say that the procedures in question *can* be used for such
a purpose, and indeed they cannot reliably be so used.
John Cowan jcowan@xxxxxxxxxxxxxxxxx www.reutershealth.com www.ccil.org/~cowan
The whole of Gaul is quartered into three halves.
-- Julius Caesar