From ... Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.vmunix.org!news.ebone.net!news1.ebone.net!194.177.33.107.MISMATCH!hamster.europeonline.net!newsfeed.europeonline.net!nslave.kpnqwest.net!nloc.kpnqwest.net!nmaster.kpnqwest.net!nreader2.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: PROGV question References: <3C8C8A56.EB39DA6A@eurocom.od.ua> Mail-Copies-To: never From: Erik Naggum Message-ID: <3224857998133753@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 23 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 11 Mar 2002 17:53:08 GMT X-Complaints-To: newsmaster@KPNQwest.no X-Trace: nreader2.kpnqwest.net 1015869188 193.71.199.50 (Mon, 11 Mar 2002 18:53:08 MET) NNTP-Posting-Date: Mon, 11 Mar 2002 18:53:08 MET Xref: archiver1.google.com comp.lang.lisp:28485 (let ((*x* 3)) (progv '(*x*) '(4) (list *x* (symbol-value '*x*)))) => (3 4) * "Geoff Summerhayes" | I'm confused by the example also. Why does *x* give let's binding | of 3 and why does it take SYMBOL-VALUE to get progv's 4? Because *x* is not declared special in that particular example, and so let does not affect the symbol-value, but progv does. | I see the behaviour I'd expect. Obviously I'm missing something about | the way the bindings work in, at least, LET's example. Could someone | explain or point to an explanation? And why is an assumption mentioned | about *x* not being globally special? Because let would have affected the global value (i.e., symbol-value) if it were. Try it both ways to see the effect. /// -- In a fight against something, the fight has value, victory has none. In a fight for something, the fight is a loss, victory merely relief.