<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
<div><br></div><div>Yeah that sounded "too good" to be true, as I was pretty sure to have read here that eval cannot have access at all to the enclosing bindings.</div><br>&gt; Date: Tue, 20 Apr 2010 11:16:22 -0500<br>&gt; Subject: Re: [plt-scheme] eval &amp; syntax-rules<br>&gt; From: robby@eecs.northwestern.edu<br>&gt; To: skeptic2000@hotmail.com<br>&gt; CC: plt-scheme@list.cs.brown.edu<br>&gt; <br>&gt; This expression:<br>&gt; <br>&gt;  (let ([t 2])<br>&gt;      (eval t (make-base-namespace)))<br>&gt; <br>&gt; is equivalent to this one:<br>&gt; <br>&gt;   (eval 2 (make-base-namespace))<br>&gt; <br>&gt; I think you probably meant to write this:<br>&gt; <br>&gt;  (let ([t 2])<br>&gt;      (eval 't (make-base-namespace)))<br>&gt; <br>&gt; Eval is not what you think it is, I'd say. It isn't like ruby's eval,<br>&gt; for example.  There are lots of discussions of this in the mail<br>&gt; archives for this list and some of them may even have made it into the<br>&gt; Guide.<br>&gt; <br>&gt; Robby<br>&gt; <br>&gt; On Tue, Apr 20, 2010 at 11:13 AM, Skeptic . &lt;skeptic2000@hotmail.com&gt; wrote:<br>&gt; &gt;<br>&gt; &gt; Hi,<br>&gt; &gt; Why something like this works :<br>&gt; &gt; #lang scheme<br>&gt; &gt; (define t 9)<br>&gt; &gt; (let ([t 2])<br>&gt; &gt; &nbsp;&nbsp; &nbsp;(eval t (make-base-namespace)))<br>&gt; &gt; -&gt; 2<br>&gt; &gt; but not something like this :<br>&gt; &gt; #lang scheme<br>&gt; &gt; (define a 4)<br>&gt; &gt; (define b 5)<br>&gt; &gt; (define c 6)<br>&gt; &gt; (define-syntax test<br>&gt; &gt; &nbsp;&nbsp;(syntax-rules ()<br>&gt; &gt; &nbsp;&nbsp; &nbsp;[(test id ...)<br>&gt; &gt; &nbsp;&nbsp; &nbsp; (eval '(id ...) (make-base-namespace))]))<br>&gt; &gt; (test a b c)<br>&gt; &gt; -&gt; &nbsp;reference to a unidentified identifier : a<br>&gt; &gt; Thanks.<br>&gt; &gt; ________________________________<br>&gt; &gt; Gardez le contact. Obtenez la version mobile de Messenger ici<br>&gt; &gt; _________________________________________________<br>&gt; &gt; &nbsp;For list-related administrative tasks:<br>&gt; &gt; &nbsp;http://list.cs.brown.edu/mailman/listinfo/plt-scheme<br>&gt; &gt;<br>&gt; &gt;<br>                                               <br /><hr />Messenger sur votre téléphone = MI sur la route  <a href='http://go.microsoft.com/?linkid=9724469' target='_new'>Essayez-le maintenant.</a></body>
</html>