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&#39;m after!<br><br><div class="gmail_quote">On Tue, Jul 10, 2012 at 5:26 PM, Ludovic Courtès <span dir="ltr">&lt;<a href="mailto:ludo@gnu.org" target="_blank">ludo@gnu.org</a>&gt;</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 &lt;<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>&gt; skribis:<br>
<div class="im"><br>
&gt; It&#39;s natural --- but not correct --- to think that #` is responsible<br>
&gt; for hygiene, in which case `(f #&#39;x)&#39; should keep the given `x&#39; separate<br>
&gt; from the `let&#39;-bound `x&#39; in the result.<br>
<br>
</div>[...]<br>
<div class="im"><br>
&gt; If you change the example to<br>
&gt;<br>
&gt;  #lang racket<br>
&gt;  (begin-for-syntax<br>
&gt;   (define-syntax-rule (f body)<br>
&gt;     #`(let ([x 1]) body)))<br>
&gt;  (define-syntax (m stx)<br>
&gt;    (with-syntax ([zz (f x)]) #`(let ([x 2]) zz)))<br>
&gt;  (m)<br>
&gt;<br>
&gt; so that `f&#39; is used as a macro instead of a function, then you get 2,<br>
&gt; since the macro-expansion of `(f x)&#39; keeps the `x&#39;s separate.<br>
<br>
</div>Interesting.  Thanks for the clarification and examples.<br>
<br>
Ludo’.<br>
<br>
</blockquote></div><br>