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.