Very cool, thanks for the ideas.<div><br></div><div>Daniel<br><br><div class="gmail_quote">On Fri, Sep 16, 2011 at 1:20 PM, Matthias Felleisen <span dir="ltr">&lt;<a href="mailto:matthias@ccs.neu.edu">matthias@ccs.neu.edu</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
Yes, I was thinking of naming the register explicitly too.<br>
<div><div></div><div class="h5"><br>
On Sep 16, 2011, at 4:17 PM, Daniel MacDougall wrote:<br>
<br>
&gt; I suppose that would work. Sam suggested on #racket that I include the name of the argument in the macro definition:<br>
&gt;<br>
&gt; (define-syntax-rule (foo bar form ...)<br>
&gt;   ((lambda (bar) form ...) &quot;ARG&quot;))<br>
&gt;<br>
&gt; Then you could say:<br>
&gt;<br>
&gt; (foo bar<br>
&gt;   ; Do stuff with bar here...<br>
&gt;   )<br>
&gt;<br>
&gt; On Fri, Sep 16, 2011 at 1:12 PM, Matthias Felleisen &lt;<a href="mailto:matthias@ccs.neu.edu">matthias@ccs.neu.edu</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; Why not just store the arguments to lambda in some &#39;register&#39; and ask for them?<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Sep 16, 2011, at 4:09 PM, Daniel MacDougall wrote:<br>
&gt;<br>
&gt; &gt; In this example it should return &quot;ARG&quot;.<br>
&gt; &gt;<br>
&gt; &gt; On Fri, Sep 16, 2011 at 1:08 PM, Matthias Felleisen &lt;<a href="mailto:matthias@ccs.neu.edu">matthias@ccs.neu.edu</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; What should (foo bar) return?<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On Sep 16, 2011, at 3:46 PM, Daniel MacDougall wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; Is there any way to define a macro that expands out to a lambda, and then access the arguments passed to that lambda from outside the macro in the calling context?<br>
&gt; &gt; &gt; Here&#39;s an example of what I mean:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; #lang racket<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; (define-syntax-rule (foo form ...)<br>
&gt; &gt; &gt;   ((lambda (bar) form ...) &quot;ARG&quot;))<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; (foo &quot;Hello&quot;) ; =&gt; returns &quot;Hello&quot;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; (foo bar)     ; =&gt; expand: unbound identifier in module in: bar<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I&#39;d like access to the &quot;bar&quot; argument on the last line. Is this possible with Racket macros?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Thanks,<br>
&gt; &gt; &gt; Daniel<br>
&gt; &gt; &gt; _________________________________________________<br>
&gt; &gt; &gt;  For list-related administrative tasks:<br>
&gt; &gt; &gt;  <a href="http://lists.racket-lang.org/listinfo/users" target="_blank">http://lists.racket-lang.org/listinfo/users</a><br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>