[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: duplicate names in LET*
- To: Dave.Touretzky@A.CS.CMU.EDU
- Subject: Re: duplicate names in LET*
- From: NGALL@G.BBN.COM
- Date: Fri, 25 Jul 1986 05:45:00 -0000
- Cc: Fahlman@C.CS.CMU.EDU, common-lisp@SU-AI.ARPA
- In-reply-to: The message of 25 Jul 86 00:30 EDT from Dave.Touretzky@A.CS.CMU.EDU
- Sender: NGALL@G.BBN.COM
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*?