From ... Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!news-fra1.dfn.de!news-mue1.dfn.de!newsfeed.vmunix.org!uio.no!nntp.uio.no!ifi.uio.no!not-for-mail From: Erik Naggum Newsgroups: comp.lang.lisp Subject: Re: Idiot's guide to special variables take 2 Date: 19 Nov 2002 06:07:14 +0000 Organization: Naggum Software, Oslo, Norway Lines: 35 Message-ID: <3246674834366592@naggum.no> References: <3246463395155052@naggum.no> <87k7jcautp.fsf@darkstar.cartan> <3246632354249421@naggum.no> <3246668724440113@naggum.no> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: maud.ifi.uio.no 1037686034 20700 129.240.65.5 (19 Nov 2002 06:07:14 GMT) X-Complaints-To: abuse@ifi.uio.no NNTP-Posting-Date: 19 Nov 2002 06:07:14 GMT Mail-Copies-To: never User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 Xref: archiver1.google.com comp.lang.lisp:47143 * Kurt B. Kaiser | I would have expected eval to evaluate its argument in the lexical | environment of the let block. But /why/? When you quote x, you explicitly request that it /not/ be evaluated. You pass `eval´ a symbol, not a value from the lexical environment. If you want the latter effect, do not quote x. | Other functions, like print, have their arguments evaluated in that | lexical environment before being passed. If you try `(print 'x)´, it will print `x´, not the value thereof. | However, the _effect_ of eval seems to be not quite like other functions | because when it evaluates its argument it does so in the current dynamic | environment, and that is definitely not what I was expecting. All other functions do the same. This is how function evaluation works. This is how the dynamic environment works. | On a slightly different, but closely related, subject, I find it | confusing that the `special declaration also "punches holes" in those | parts of the lexical overlay which were created after the last dynamic | binding, as in the example. I have no idea what this means. I believe you still think in a different language and are unwilling to let go of what you believe you understand. Like perhaps `eval´ in Perl. -- Erik Naggum, Oslo, Norway Act from reason, and failure makes you rethink and study harder. Act from faith, and failure makes you blame someone and push harder.