<p>#lang racket<br />(require mzlib/string)</p>
<p><br />(define a "(* x x)")<br /><br />(define (makfunction s)<br />&nbsp; (eval-string (string-append<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "(lambda (x) "<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ")")))<br /><br />(define d (makfunction a))<br /><br />;; The&nbsp;above line will not work when you press run.<br />;; However, if you key it in the evaluation window after run<br />;; it will work. WHY?<br /><br /><br />;Thanks, jb</p>