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@scheme-reports.org http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports