At Thu, 1 Oct 2009 16:23:03 -0400, Ryan Culpepper wrote: > To back up my analysis, here's a variation of the macro. Because of > begin-splicing etc etc, the definition is *executed* before the 'set!' > expression is *compiled*. And it works. (Or so it seems.) > > (define-syntax (m stx) > (syntax-case stx () > [(_ x) > (with-syntax ([(y) (generate-temporaries (syntax (x)))]) > (syntax (begin (define (y) #f) > (set! y (lambda () y)))))]))
Right. This variant does the same thing as the `define-syntaxes' hack --- but it actually defines the identifier to make it exist, which works just as well in this case. _________________________________________________ For list-related administrative tasks: http://list.cs.brown.edu/mailman/listinfo/plt-dev