Subject: Re: Newbie asking for help
From: Erik Naggum <>
Date: 2000/06/27
Newsgroups: comp.lang.lisp
Message-ID: <>

* Simon Brooke <>
| SETQ is defined to bind variables to forms.


| A variable is just any name in the 'variable' namespace


| (Yeuch!  LISP2! **Nasty**).


| 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.  

  If this is not what you expected, please alter your expectations.