[r6rs-discuss] [Formal] the CHAR? type
John Cowan wrote:
>> 1. In general, the less restricted model is simpler and more
>> powerful. In an implementation without the restriction,
>> the CHAR? type can simply be isomorphic with a set of
>> exact integers in some (possibly improper) superset of
>> [0,#xFFFFFFFF].
>>
>
> If you want u32 vectors, you know where to find them.
>
>
I don't understand that or several other of your comments.
I see no reason at all why you and I need to agree how an
implementation *should* treat CHAR? and STRING?.
In fact it is handy, for evaluating my proposal, that we have
momentarily irreconcilable views on that. I'd be happy
to discuss the implementation I have in mind, to give you
a more accurate picture of my perspective,
but I'm not interested in arguing with you about it -- such
an argument has no relevance here.
R6RS' primary duty is to explain how implementations
*must* treat CHAR? and STRING?. And so, I would
suggest two requirements:
1. Portable Scheme programs must be able to represent
Scheme identifier names as STRING? values. There
must be a straightforward way, using CHAR? and
STRING? values, to manipulate these names in all of
the ways implied by Scheme's syntax (e.g., implement
an algorithm to test identifier names for syntactic
equivalence).
2. Portable Scheme programs must be able to implement
conforming Unicode processes in a straightforward
way using the CHAR? and STRING? types.
As written, R^5.91RS combines two choices, towards translating
requirements (my list or otherwise) into language spec:
choice a: integer->char must accept Unicode scalar values
(and all that that implies)
choice b: integer->char must accept *only* Unicode scalar
values
I think you can see that "choice a" certainly helps to satisfy
the two requirements I made up by "choice b" doesn't really
add much.
Can you explain an agreeable requirement for R6RS that
would justify "choice b"?
-t
Received on Fri Nov 17 2006 - 16:14:00 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:00 UTC