Re: ANN: first draft of R7RS small language available Aaron W. Hsu (24 Apr 2011 18:47 UTC)
Re: [Scheme-reports] ANN: first draft of R7RS small language available Aaron W. Hsu (24 Apr 2011 19:57 UTC)

Re: [Scheme-reports] ANN: first draft of R7RS small language available Aaron W. Hsu 24 Apr 2011 19:57 UTC

On Sun, 24 Apr 2011 15:50:15 -0400, Andre van Tonder <andre@het.brown.edu>
wrote:

> On Sun, 24 Apr 2011, Aaron W. Hsu wrote:
>
>> On Sun, 24 Apr 2011 15:34:23 -0400, Andre van Tonder
>> <andre@het.brown.edu> wrote:
>>
>>> The latter behaviour may be compatible with the document in systems in
>>> which all identifiers are considered implicitly bound at toplevel, so
>>> the DEFINE would be like a SET!
>>
>> Even in systems where this is the case, and Chez in particular, this
>> does not do this.
>
> I thinkthe reason Chez does not doi this is becasue you are replacing a
> syntactic binding for ELSE by a variable binding, so the DEFINE is not
> like a SET!.  IF the original binding of  ELSE was a variable binding,
> the define would be like a SET! and the ELSE clause would match.

It does not matter whether the else is a syntactic binding or a variable
binding. Chez behaves the same in either case regarding this. Take this
for example:

> (library (a)
     (export test else)
     (import (except (chezscheme) else))
     (define-syntax test
       (syntax-rules (else)
         [(_ else) 'else] [(_ blah) #f]))
     (define else #f))
> (import (a))
> (test else)
else
> (test x)
#f
> (define else #t)
> (test else)
#f
>

The definition actually alters the lexical binding; library exports are
immutable, and thus a redefinition is more like a shadowing than a set!.

	Aaron W. Hsu

--
Programming is just another word for the lost art of thinking.

_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports