<br><div class="gmail_quote">On Fri, Nov 20, 2009 at 17:14, Carl Eastlund <span dir="ltr">&lt;<a href="mailto:carl.eastlund@gmail.com" target="_blank">carl.eastlund@gmail.com</a>&gt;</span> 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>On Fri, Nov 20, 2009 at 10:55 AM, Joe Marshall &lt;<a href="mailto:jmarshall@alum.mit.edu" target="_blank">jmarshall@alum.mit.edu</a>&gt; wrote:<br>
&gt; On Fri, Nov 20, 2009 at 5:57 AM, Laurent &lt;<a href="mailto:laurent.orseau@gmail.com" target="_blank">laurent.orseau@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; I have the following (simplified) code :<br>
&gt;&gt;<br>
&gt;&gt; (define (f1 x)<br>
&gt;&gt;   (let ([y (foo x)])<br>
&gt;&gt;     (bar x y y)<br>
&gt;&gt;     (plop y x y)<br>
&gt;&gt;     (baz x y)))<br>
&gt;&gt;<br>
&gt;&gt; (define (f2 x)<br>
&gt;&gt;   (let ([y (foo x)])<br>
&gt;&gt;     (baz x y)))<br>
&gt;<br>
&gt; (define (wrapper receiver)<br>
&gt;  (lambda (x)<br>
&gt;    (let ((y (foo x)))<br>
&gt;      (receiver x y)<br>
&gt;      (baz x y))))<br>
&gt;<br>
&gt; (define f1<br>
&gt;   (wrapper<br>
&gt;     (lambda (x y)<br>
&gt;         (bar x y y)<br>
&gt;         (plop y x y) )))<br>
&gt;<br>
&gt; (define f2<br>
&gt;   (wrapper<br>
&gt;      (lambda (x y) #f)))<br>
<br>
</div>Oops.  Joe, of course, has the best solution.  No need for &quot;macrology&quot;<br>
when &quot;functionality&quot; does the job.  Pardon the puns.<br></blockquote><div><br>But this introduces a (little?) run-time cost, doesn&#39;t it?<br></div></div><br>