Subject: Re: PROGV question From: Erik Naggum <erik@naggum.net> Date: Mon, 11 Mar 2002 17:53:08 GMT Newsgroups: comp.lang.lisp Message-ID: <3224857998133753@naggum.net> (let ((*x* 3)) (progv '(*x*) '(4) (list *x* (symbol-value '*x*)))) => (3 4) * "Geoff Summerhayes" <sNuOmSrPnAoMt@hNoOtSmPaAiMl.com> | 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.