[r6rs-discuss] perhaps i should be formal, but....
William D Clinger wrote:
> I am posting this as an individual member of the Scheme
> community. I am not speaking for the R6RS editors.
>
> Thomas Lord wrote:
>
>> Cowan is excluded from answering.
>>
>> Can anyone give a good reason why integer->char and char->integer should
>> have the domain/range restrictions they do?
>>
>
> Anyone cannot, but someone can.
>
>
Perhaps it should also be "Would someone be so kind as to [...], if you
please?"
"Would" since it it would be a rude to use the active voice which would
suggest a declaration of urgent need rather than an invitation. "Will
someone save me for, otherwise, I shall surely drown."
"someone be so kind" for surely, discussion is a kindness.
"if you please" since one would not wish to be seen suggesting
an *unpleasant* conversation.
Grammar, logic, and manners are certainly critical tools, not
to be neglected. It is surely regrettable when, across cultural
divides and narrow channels of communications they are
applied in ways that impede rather than enable gracious communication.
Yet, what can one do when that occurs other than to attempt
to clarify intended meaning?
>> Keep in mind the
>> "unnecessary restrictions" slogan when answering.
>>
>
> Cowan's exclusion was unnecessary.
It certainly appears to have been misunderstood.
It was simply an (apparently over familiar) short-hand
meant not to exclude the man, per se, but rather any appeal
to an externally constructed "Unicode best practices".
The range restrictions in R6 are something new.
Earlier revisions of the standard defined a portable character set,
allowing implementations to freely expand beyond that set.
In a portable program, if only the portable character set is
used, reliably portable behavior obtains.
In the R6 draft, the entire set of permitted characters is
explicitly enumerated. Moreover, the set's mapping to integer
values is both discontinuous and defined by three constants
that, a priori, appear to be arbitrary.
My question is whether any principled reason for these arbitrary
constants is given that might be supported without appeal
to analogies to other programming languages. What makes
a programming language with this limitation, like R6, better
than a programming language without such a limitation, like R5?
> You only excluded
> him from answering you, however; you did not exclude
> me from having him in mind when I answered.
>
>
As you seem to have recognized, though, simply rehearsing
arguments about Unicode best practices would somehow have
missed the point of the question, which anyway is hopefully
clearer now.
> The draft R6RS is a legalistic document, so I try to
> discuss it in that same spirit.
>
>
The document has its legalistic elements where they are essential
to clearly communicating a point that is best expressed that way.
I think it is also, though, simply what it claims to be: a "report"
about the programming language Scheme.
As a report, and in its historic position, the document has valuable
extra-legal elements. It describes a discovery. It conveys a
design philosophy. The progression of revisions records a history
of the playing out certain insights into how a language can be
both simple and unusually general.
In the area of numbers, particular care is taken to at least sketch a
mathematical theory of numbers that explains some of the design
choices. This is compelling and effective not because we are required
to agree the Right mathematical foundation was chosen, but simply
because there we can at least *see* the foundation and therefore have
a chance to decide for ourselves if the choice was well made and faithfully
applied.
There is quite a bit that is arbitrary about about the specific structure
of Unicode. For example: the range of code points and the numeric
constants assigned to surrogates are not a priori attributes of a
character-like
type. One could even imagine a character set, which could be converted
to and from Unicode without loss, which not only might have different
values for those constants, but might involve no such constants at all!
Note that there is a fine distinction to be made between arbitrary
choices such as the numeric values assigned to portable characters,
and arbitrary choices such as a mandatory domain restriction
on INTEGER->CHAR. In the former, if CHAR<->INTEGER
conversion is to be supported at all, it is clear that *some* arbitrary
choice must be made and so, of course, appeal to a popular standard
for that. In the latter case, the domain restriction, there is no obvious
reason to believe any such restriction is needed or makes the language
better than another language without that restriction.
So, how does it come to pass that those patently arbitrary aspects of
Unicode appear in the report not as a set of domain limits within which
the behavior of portable programs is assured, but as restrictions that
forbid
an implementation from expanding the domains and ranges of certain
standard procedures?
Answers that amount to "best practices" or "it worked out nicely in
language X" don't seem particularly satisfying to me and I honestly
do see why they should be satisfying to you, either.
I notice that, in the draft's discussion of numbers, mention of historic
lisps and of Common Lisp have been moved to the introduction but
discussion of mathematical foundations retained in the body of the
text. With characters, the draft seems to move in a contrary direction,
with the body of the text simply appealing to an "isomorphism" to an
externally developed, large standard and, implicitly, to the informal
discourse that has grown up around it. What gives?
I don't think there is any "legalistic" way to frame such a question.
There is a legal question at issue: how certain procedures should
be specified. But the larger question is on what basis, by what ways,
should such specifications be decided?
If R6 is simply to be a record of votes taken, a kind of tallying up
of a political process with purely pragmatic aims, then perhaps
it is no longer a "report" at all. The line of thought that started
with the "ultimate" papers has ended. What carries on, in its place,
is a particular *use* of the main tangible artifact of that line of
thought. And, in that case, the introduction should certainly be
purged or retitled "Obituary" and the document as a whole
retitled.
-t
Received on Wed Mar 14 2007 - 14:17:25 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:01 UTC