[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: duplicate names in LET*
Date: 25 Jul 86 00:30 EDT
From: Dave.Touretzky@A.CS.CMU.EDU
To: "Scott E. Fahlman" <Fahlman@C.CS.CMU.EDU>
Subject: duplicate names in LET*
In-Reply-To: <FAHLMAN.12225389688.BABYL@C.CS.CMU.EDU>
The rule in Common Lisp should be that you can't have duplicate names in
the same LEXICAL ENVIRONMENT. This rules out duplicate names in a lambda
list or a LET, and duplicate tags in a tagbody. But it should not rule
out duplicate names in a LET* because the variables in a LET* are bound in
different lexical environments. ...
Wait a second. The optional and keyword parameters are NOT in the
same lexical environment, they are in nested ones, e.g.,
((lambda (&optional (v1 e1) (v2 e2) (v3 e3)) body))
is semantically equivalent to
(let* ((v1 e1) (v2 e2) (v3 e3))
body)
So why should lamda-lists be treated differently than LET*?