[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: defmacro in let



	
    Date: Wed 26 Feb 86 10:27:27-PST
    From: Andy Freeman <ANDY@SU-SUSHI.ARPA>
    To: common-lisp@SU-AI.ARPA
    Subject: defmacro in let
    Message-ID: <12186489734.14.ANDY@SU-SUSHI.ARPA>
    
    The following is legal Common Lisp.
    
	(let ((tag (gensym)))
	  (defun foo ()
	    tag))
    
    What about this?  (Yes, this example is stupid, but there are uses of
    the idea that aren't.)
    
	(let ((tag (gensym)))
	  (defmacro foo ()
	    tag))
    
It is legal, but TAG is considered a special (i.e., the enclosing lexical
env. is ignored).  See pg 145.

    What about defsetf's inside top-level lets?

Unclear from the text how free references should be handled.  Since it
"resembles DEFMACRO" (pg. 103) I'd go with my answer above.  Should be
clarified though.

    -andy
    -------
    
	      --------------------
		
	-- Nick