[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
More words on the scoping of declarations
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
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.