20 minutes ago, John Clements wrote: > > On Oct 16, 2012, at 7:16 PM, Eli Barzilay wrote: > > > So you need to grab it outside of the new tansformer, just like > > with plain parameters and closures. > > just like with plain parameters? that doesn't sound right to me: > > #lang racket > > (define p (make-parameter 3)) > > (parameterize ([p (+ 1 (p))]) > (p )) > > … produces 4. > > That is, the rhs of the parameter-binding is not in the extent of > the new binding. > > Am I misunderstanding you?
Yes -- what I mean is that if you refer to the syntax parameter inside of a new transformer, then that's equivalent to: (parameterize ([p (λ () ... (p) ...)]) (p)) and the equivalent of my suggested solution is to make it into (let ([old-p (p)]) (parameterize ([p (λ () ... (old-p) ...)]) (p))) -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! ____________________ Racket Users list: http://lists.racket-lang.org/users