Subject: Re: Idiot's guide to special variables take 2
From: Erik Naggum <erik@naggum.no>
Date: 16 Nov 2002 19:23:15 +0000
Newsgroups: comp.lang.lisp
Message-ID: <3246463395155052@naggum.no>

* Nils Goesche
| The global environment, obviously, which is also called ``null
| lexical environment´´ to emphasize that it contains no lexically
| apparent bindings (see 3.1.1.3.1 The Null Lexical Environment).

  No, this is not right.  That two things are the same in one respect does
  not make them the same in all respects, which they would have to be to be
  interchangeable.  It is like `not´ and `null´.

| Whether this is legal code or not is not so interesting at the moment;
| what I like is that we can explain everything that happened in the above
| experiments without resorting to implementation issues if we simply say
| that X is part of such a thing as a ``global lexical environment´´.

  But there is no such thing.  The whole point is that it is /not/ lexical.

| Christian Queinnec writes in ``Lisp in Small Pieces´´ (p. 50):
| 
| # In addition, if we do not find the dynamic value, then we go
| # back to the global lexical environment, since it also serves as
| # the global dynamic environment in Common Lisp.

  I believe this is more accurate for Scheme.

| What /really/ goes on under the hood in the implementation is perfectly
| clear, anyway; but I find it interesting, anyway.

  When the implementation is clear and the concepts are not, the conceptual
  model is wrong.

-- 
Erik Naggum, Oslo, Norway

Act from reason, and failure makes you rethink and study harder.
Act from faith, and failure makes you blame someone and push harder.