[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] Are generated toplevel definitions secret?
On Sun, 24 Apr 2011, Peter Bex wrote:
> On Sun, Apr 24, 2011 at 05:21:30PM +0200, Peter Bex wrote:
>>> Heh, cool. Fortunately it's not central to my argument. How about an
>>> accessor macro:
>>>
>>> (begin
>>> (define-syntax define-getter
>>> (syntax-rules ()
>>> ((_ var init)
>>> (begin
>>> (define val init)
>>> (define-syntax var
>>> (syntax-rules ()
>>> ((_) val)))))))
>>>
>>> (define-getter x 10)
>>> (define-getter y 20))
>>>
>>> If I put that in a chicken module, import the module, then evaluate (x)
>>> and (y), does that evaluate to 10 and 20, respectively?
>>
>> Yeah. Each macro carries its syntactic information with it, like a
>> closure. So "val" in the macro expansion would refer to the x that is
>> defined in that module.
>
> I overlooked the fact that val is used, not var. This will give an
> error because the "val" is defined in a different phase than the "var"
> macro is declared.
No, it is still the same phase.
_______________________________________________
Scheme-reports mailing list
Scheme-reports@x
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports