[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] diff between R6RS and the R7RS small language draft
- To: Alex Shinn <alexshinn@x>
- Subject: Re: [Scheme-reports] diff between R6RS and the R7RS small language draft
- From: Andy Wingo <wingo@x>
- Date: Mon, 15 Aug 2011 11:47:01 +0200
- Cc: scheme-reports <scheme-reports@x>
- In-reply-to: <CAMMPzYOV8-5WCbMxQg2aBKo5CE=ePqybWK-rOBkX_eiFStHY7Q@mail.gmail.com> (Alex Shinn's message of "Mon, 8 Aug 2011 00:10:13 +0900")
- References: <CAMMPzYOV8-5WCbMxQg2aBKo5CE=ePqybWK-rOBkX_eiFStHY7Q@mail.gmail.com>
Thanks for writing this page, it is on the whole a good document.
A couple of points come to mind:
> Identifier syntax is not provided. We feel this is a useful feature in
> some situations, but the existence of such macros means that neither
> programmers nor other macros can look at an identifier in an evaluated
> position and know it is a reference -- this in a sense makes all
> macros slightly weaker. We'd like to see individual implementations
> continue experimenting with this and other extensions before
I do not think that this is a suitable justification. (I think it's
fine to not have a justification FWIW; better than a bad justification.)
In particular you can make the same argument about not knowing whether a
particular form is an expression or a definition. I guess my question
is, why is this a good argument against identifier-syntax?
> Internal syntax definitions are allowed, but all references to syntax
> must follow the definition -- the even/odd example given is R6RS is
> not allowed.
Implementations may (and some will) support the even/odd example,
however. I hope that such an implementation will still be deemed a
compatible Scheme system.
> The division operators div, mod, div-and-mod, div0, mod0 and
> div-and-mod0 have been replaced with a full set of 15 operators
> describing 5 rounding semantics.
R7RS does include the equivalents of div and mod, but not div0 and
mod0. The centered/ that I suggested was the div0/mod0 equivalent; I
gave arguments for it, but it was not deemed to be useful.
> When a result is unspecified, it is still required to be a single
> value, in the interests of R5RS compatibility.
I still consider this to be an unnecessary restriction, and a shameful
one at that.
Scheme-reports mailing list