[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
More words on the scoping of declarations
- To: mike%acorn@LIVE-OAK.LCS.MIT.EDU
- Subject: More words on the scoping of declarations
- From: Rob MacLachlan <RAM@C.CS.CMU.EDU>
- Date: Tue, 26 Aug 1986 16:03:00 -0000
- Cc: Common-Lisp@SU-AI.ARPA, Pavel.pa@XEROX.COM
- In-reply-to: Msg of 26 Aug 1986 00:09-EDT from mike%acorn at mit-live-oak.arpa
Actually I wasn't primarily worried about the meaning of repeated
LET* variables, supposing they are legal. I was more concerned about
the scope in LET* of declarations which don't pertain to a particular
variable. In LET* there isn't a clear environment division which can
contain these "pervasive" declarations.
I can think of two reasonable scopes for pervasive declarations in LET*:
1] The declarations syntactically enclose all of the incremental
environments in the LET*, and thus affect all init forms as well as
the body.
2] The declarations affect only the innermost environment, and thus
are in effect only in the body, and in none of the init forms.
I favor the latter interpretation, since it more closely resembles the
scoping in LET. In any case, it seems that LET* must special-case the
declarations depending on whether they are "pervasive" or not.
Although the concept of a pervasive declaration seems to cause Pavel
to cringe, I am not yet convinced that it is a bankrupt idea.
Rob