This works because you are calling (eval-string-with-1 &quot;abc&quot;) from outside the module - but it doesn&#39;t when the function is called from the inside the module. For instance :<br><br>(module foo mzscheme<br>&nbsp; (define&nbsp; (abc x)
<br>&nbsp;&nbsp;&nbsp; (display &quot;foo&quot;)<br>&nbsp;&nbsp;&nbsp; (newline))<br>&nbsp;<br>&nbsp; (define&nbsp; (eval-string-with-1 string)<br>&nbsp;&nbsp;&nbsp; ((eval (string-&gt;symbol string)) 1))<br>&nbsp;<br>&nbsp; <br>&nbsp; (eval-string-with-1 &quot;abc&quot;)<br>&nbsp; <br>&nbsp; (provide eval-string-with-1
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; abc))<br><br>(require foo)<br><br>Doesn&#39;t work. And that&#39;s what I need to do :/<br><br><div><span class="gmail_quote">On 6/23/07, <b class="gmail_sendername">Richard Cleis</b> &lt;<a href="mailto:rcleis@mac.com">
rcleis@mac.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div style="">A&nbsp;workaround depends on what you are trying to do.&nbsp; For example, providing a function to evaluate a string works, but you also have to provide any function you intend to use.
<div><br></div><div>(module foo mzscheme</div><span class="q"><div>&nbsp; (define&nbsp; (abc x)</div><div>&nbsp; &nbsp; (display &quot;foo&quot;)</div><div>&nbsp; &nbsp; (newline))</div><div>&nbsp; </div></span><div>&nbsp; (define&nbsp; (eval-string-with-1 string)</div>
<div>&nbsp; &nbsp; ((eval (string-&gt;symbol string)) 1))</div><div>&nbsp; </div><div>&nbsp; (provide eval-string-with-1</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; abc)</div><div>&nbsp; )</div><div><br></div><div>(require foo)</div><div><br></div><div>(eval-string-with-1 &quot;abc&quot;)
</div><div><br></div><div>rac</div><div><br></div><div><br></div><div><br></div><div><br><div><div><span class="e" id="q_1135963369ec671a_3"><div>On Jun 23, 2007, at 8:56 AM, Jean-Pierre Lozi wrote:</div><br></span></div>
<blockquote type="cite"><div><span class="e" id="q_1135963369ec671a_5">Hi all,<br><br>How can I use eval in a module definition? For instance, <br><br>(define (abc x)<br>&nbsp;(display &quot;foo&quot;)<br>&nbsp;(newline))<br><br>((eval (string-&gt;symbol &quot;abc&quot;)) 1)
<br><br>works, whereas<br><br> (module foo mzxcheme<br>&nbsp;(define (abc x)<br> &nbsp; (display &quot;foo&quot;)<br> &nbsp; (newline))<br> <br>&nbsp; ((eval (string-&gt;symbol &quot;abc&quot;)) 1))<br><br>(require foo)<br><br>doesn&#39;t. Eval appears too look for the abc function in the global namespace. Does anyone know a workaround?
<br><br>Thanks,<br><br clear="all"> <br>-- <br>Jean-Pierre Lozi<br><a href="http://www.lozi.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.lozi.org</a><br>mailto:<a href="mailto:jean-pierre@lozi.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
jean-pierre@lozi.org</a></span></div><div style="margin: 0px;">_________________________________________________</div><div style="margin: 0px;"><span>&nbsp; </span>For list-related administrative tasks:</div><div style="margin: 0px;">
<span>&nbsp; </span><a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a></div> </blockquote>
</div><br></div></div></blockquote></div><br><br clear="all"><br>-- <br>Jean-Pierre Lozi<br><a href="http://www.lozi.org">http://www.lozi.org</a><br>mailto:<a href="mailto:jean-pierre@lozi.org">jean-pierre@lozi.org</a>