Subject: Re: Newbie asking for help From: Erik Naggum <erik@naggum.no> Date: 2000/06/27 Newsgroups: comp.lang.lisp Message-ID: <3171101213338118@naggum.no> * Simon Brooke <simon@jasmine.org.uk> | SETQ is defined to bind variables to forms. Wrong. | A variable is just any name in the 'variable' namespace Wrong. | (Yeuch! LISP2! **Nasty**). Idiot. | So, in your example, setq binds the name 'pie' in the current dynamic | environment, by assigning a value to that name in the namespace (all | possible names exist (in a platonic sense) in the namespace, it's just | that the overwhelming majority of them are never instantiated by being | bound). The environment happens to be top-level. The following | evaluation of the name pie retrieves the value from the namespace. Bogus from A to Z. | Therefore the behaviour you describe is mandated by the hyperspec. Wrong. (If it is, it isn't because of your reasoning.) A more interesting question than Steven M Haflich's stupid quibbling is whether (setq foo 1) is identical to (setf (symbol-value 'foo) 1) if foo is not lexically bound. If it is, then it is completely beside the point whether foo is "declared" or not. #:Erik -- If this is not what you expected, please alter your expectations.