On Sat, Oct 18, 2014 at 4:19 AM, Peter Bex <[email protected]> wrote:

>
> If I understand correctly, that means that this program should
> not fail, but simply print "1":
>
> (define (else) 1)
> (display (else))
> (newline)
>

This works fine in R7RS provided that `else' is not imported (or you're in
a repl).

That doesn't constitute an argument for not exporting `else',
because you have the same issue with redefining `car' or `+'.
Because of the strict R7RS imports, R5RS programs that
override existing bindings must (import (except (scheme r5rs) ...)).

Given that, and my inability to come up with an example of what
would have been a portable R5RS program that breaks through
the introduction of auxiliary syntax, I think we should just export
`else', `=>' and `syntax-rules' from (scheme r5rs) even though
they weren't bound in R5RS.  This is simplest and consistent
with R7RS.

As the issue is debatable I'll double check with the WG members
before adding this as an errata.

-- 
Alex
_______________________________________________
Scheme-reports mailing list
[email protected]
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports

Reply via email to