[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] diff between R6RS and the R7RS small language draft

Hi Alex,

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
> standardizing.

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