[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*?