I mean that, for a given procedure application (yes, one
argument, for simplicity) substitution of eq value yields
an equivalent computation. No? I thought that was the
point of "eq?".
I don't have a dog in the Scheme fight -- I think a future
lisp will win instead. But I'm fond of Scheme because
it is so close to right. A necessary condition for a
sane Scheme-*ish* lisp being on the right track, as far
as I am concerned, is for it to bite the bullet and define
the CHAR? type as the *space of* Unicode code points
(up to some number of bits). Characters are codepoints,
in other words -- Unicode code points are the new ASCII.
We need extended forms of UTF-16 and UTF-8 which
are formally and officially and with a blessing from the pope
capable of representing *any* sequence of *encoding values*
from any of the encoding schemes and, then encoding values
ought to be taken as code-points, used in a particular way.
In other words, I want (for example) a "utf-16++" in which
an unpaired leading surrogate, followed by an unpaired trailing
surrogate, can be represented -- if I concatentate two improper
utf-16 strings, i should reliably get a utf-16++ string whose
length is the sum of those two and which is itself improper.
There is no (none, zero, nadda, zilch, zippo) chance of making
any CHAR? type that jives really perfectly with any social/intuitive/
human conception of what a "character" is -- but "a character is
a Unicode codepoint" is just so crystal clear, but simple, and
sufficient that I can't believe anyone -- not even bear who generally
prefers the application-level char type to include combining
sequences -- would pass it by.
R^_RS is getting this all wrong by trying to, arrogantly, carve
out some entirely *novel* definition of CHAR?. Oh, you
can't pass a surrogate codepoint integer value to INTEGER->CHAR
etc. This committee -- this Scheme committee -- has decided
that it knows better than the Unicode consortium or anyone else
how to define the basis sets of text processing: I have no respect
for that.
A character is a freaking code point is a freaking character.
Nothing could be simpler. Work out the interfaces from
there.
feeling a touch bitchy, apparently -- with regards,
-t
John Cowan wrote:
> Abdulaziz Ghuloum scripsit:
>
>
>>> Isn't it the case in Scheme that, for all singleton procedures P and
>>> all values V1 and V2 that
>>>
>>> (eq? V1 V2) => (eq? (P V1) (P V2))
>>>
>> What's a singleton procedure? But regardless of the definifion, the
>> above statement only holds for some specific values of P, V1, and V2.
>>
>
> I take it to mean a procedure that accepts a single argument and
> returns a single value.
>
> An obvious example is a stateful P; if P is "multiply by a random
> number", then the right side is clearly false.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://lists.r6rs.org/pipermail/r6rs-discuss/attachments/20061114/897365e2/attachment.html
Received on Tue Nov 14 2006 - 21:39:02 UTC