samth made a pointer to <br><br><a href="http://srfi.schemers.org/srfi-72/srfi-72.html">http://srfi.schemers.org/srfi-72/srfi-72.html</a><br><br>It does not look like guile racket etc. have implemented this yet.<br><br>Am I wrong?<br>
<br>This is precisely what I'm after!<br><br><div class="gmail_quote">On Tue, Jul 10, 2012 at 5:26 PM, Ludovic Courtès <span dir="ltr"><<a href="mailto:ludo@gnu.org" target="_blank">ludo@gnu.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
Matthew Flatt <<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>> skribis:<br>
<div class="im"><br>
> It's natural --- but not correct --- to think that #` is responsible<br>
> for hygiene, in which case `(f #'x)' should keep the given `x' separate<br>
> from the `let'-bound `x' in the result.<br>
<br>
</div>[...]<br>
<div class="im"><br>
> If you change the example to<br>
><br>
> #lang racket<br>
> (begin-for-syntax<br>
> (define-syntax-rule (f body)<br>
> #`(let ([x 1]) body)))<br>
> (define-syntax (m stx)<br>
> (with-syntax ([zz (f x)]) #`(let ([x 2]) zz)))<br>
> (m)<br>
><br>
> so that `f' is used as a macro instead of a function, then you get 2,<br>
> since the macro-expansion of `(f x)' keeps the `x's separate.<br>
<br>
</div>Interesting. Thanks for the clarification and examples.<br>
<br>
Ludo’.<br>
<br>
</blockquote></div><br>