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

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

On Fri, Oct 17, 2014 at 01:29:53PM -0400, John Cowan wrote:
> Per Bothner scripsit:
> > Is the following reasonable (for r7rs)?
> > 
> > (define-syntax else
> >    (syntax-rules ()
> >      ((_ . rest)
> >       (syntax-error "invalid use of 'else"))))
> That's a good definition, yes.  It's also fine for R5RS, since R5RS leaves
> the question of binding open.

Are you sure?  It doesn't mention that else is anything else than a
special thing inside cond or case.  It also mentions that macro
definitions shadow variable bindings.

If I understand correctly, that means that this program should
not fail, but simply print "1":

(define (else) 1)
(display (else))

Even if there's a peculiar way in which you can read R5RS that allows
"else" to be bound as syntax, I doubt you'll be able to find an
implementation in which the program above will fail.  It would be a
shame if r7rs broke compatibility with these programs.


Scheme-reports mailing list