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

Re: [Scheme-reports] 'else' auxiliary syntax

Alex Shinn scripsit:

> I think the correct behavior for (scheme r5rs) is that these remain
> undefined, and cond, case and quasiquote all match the absence of the
> bindings as in R5RS.  This implies they are not just re-exported versions
> of the R7RS macros.

This seems more trouble than it's worth, particularly as R5RS is rather
vague on the treatment of auxiliary syntax keywords, and different R5RS
implementations do different things.

Takashi Kato scripsit:

> I don't much mind if these are exported or not but I believe the whole point
> of (scheme r5rs) library is compatibility for something like this situation;
> (import (scheme r5rs))
> (include-ci "legacy-r5rs-script.scm")
> So as long as this is guaranteed to be executed whichever is fine by me.

It isn't.  Merely importing (scheme r5rs) does not remove the R5RS-to-R7RS
incompatibilities listed on p. 77.  For example, (+ 1.0d0 1.0d0) is
guaranteed to return an inexact number in portable R5RS code, but is
not necessarily accepted by R7RS implementations (Chibi returns 2.0,
Foment and Picrin throw lexical syntax errors).  Similarly, the (scheme
r5rs) version of `eq?` may distinguish between procedures that are the
same in the sense of `eqv?`, just as the (scheme base) version may.
The only purpose of (scheme r5rs) is to provide an easy way to import
the identifiers defined by R5RS; it does not give you an R5RS emulator.

> I believe R5RS library should export 'syntax-rules' since it's a bound symbol
> on R5RS but it's missing on R7RS small.

I agree that this is another auxiliary syntax keyword, and should be
treated like the rest.

John Cowan          http://www.ccil.org/~cowan        cowan@x
If I have seen farther than others, it is because I am surrounded by dwarves.
        --Murray Gell-Mann

Scheme-reports mailing list