This is the mail archive of the
mailing list for the Guile project.
Re: "environment" unsuitable name for top-level environment
- To: Mikael Djurfeldt <firstname.lastname@example.org>
- Subject: Re: "environment" unsuitable name for top-level environment
- From: Mikael Djurfeldt <email@example.com>
- Date: 18 Aug 1999 19:59:51 +0200
- Cc: firstname.lastname@example.org, email@example.com
- Cc: firstname.lastname@example.org
- References: <E11GpUjemail@example.com>
I'm sure most people interested in this discussion already are aware
of this, but here's a clarification regarding how lexical environment
looks like from the inside:
(define y 3)
(define (foo x)
(let ((z 5))
(* x y z))
The lexical environment at the multiplication expression will have an
internal representation which looks somewhat like this:
head frame1 frame2 top level
_ _ _ _ _ _ _ _
| | | |
type z=5 x=2 "Jim proposal thing"
The lexical environment denoted by the environment specifier
`null-environment' passed as second argument to `eval' will be
represented like this:
_ _ _ _
type "Jim proposal thing"
(This is, BTW a top level environment.)
What I'm saying is that it is the above two things which are
`environments' in the true sense, while the "Jim proposal thing" is
really a part of the implementation of environments (in fact, it's not
even a top level environment if we are strict).
So, it's not very good to call the "Jim proposal thing" `environment'.