Why do you need to syntax rather than just quote the (define-syntax ...) before giving it to eval?&nbsp; Or would either work...?<br><br><div class="gmail_quote">On Dec 14, 2007 8:20 AM, Matthew Flatt &lt;<a href="mailto:mflatt@cs.utah.edu">
mflatt@cs.utah.edu</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d">At Fri, 14 Dec 2007 17:10:30 +0100, &quot;Jos Koot&quot; wrote:
<br>&gt; (define (add-binding name transformer)<br>&gt; &nbsp;(eval #`(define-syntax #,name #,transformer) namespace))<br>&gt;<br>&gt; (add-binding &#39;name (syntax-rules () ((_) (list &#39;transformer))))<br></div>&gt; [...]
<br><div class="Ih2E3d">&gt;<br>&gt; (define (add-binding name transformer)<br>&gt; &nbsp;(eval #`(define-syntax #,name #,transformer) namespace))<br>&gt;<br>&gt; (add-binding #&#39;name (syntax-rules () ((_) (list &#39;transformer))))
<br></div>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;^^^^^^<br><br>Yes, these are different in the specific case of binding &#39;name, since a<br>symbol to `add-binding&#39; is coerced to a syntax object using the lexical<br>context of the `quasisyntax&#39; expression --- and that context includes a
<br>local binding of `name&#39;.<br><br><br>I should have suggested<br><div class="Ih2E3d"><br>&nbsp;(define (add-binding name transformer)<br></div> &nbsp; (with-syntax ([name (datum-&gt;syntax #f name)])<br> &nbsp; &nbsp; (eval #`(define-syntax name #,transformer))))
<br><br>to avoid that particular pitfall.<br><font color="#888888"><br><br>Matthew<br><br></font></blockquote></div><br><br clear="all"><br>-- <br>Dan Liebgold &nbsp; &nbsp;[<a href="mailto:dan.liebgold@gmail.com">dan.liebgold@gmail.com
</a>]