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

Re: DECLARE SPECIAL



Sorry.  I seem to have blown it again.  The macro expansion for special
declarations inside a LET should be:

   (let ((foo (1+ foo))) (declare (special foo)) foo)

   ==> ((lambda ()
         (declare (special foo))	;decl for init form
         ((lambda (foo)
            (declare (special foo))
            foo)
          (1+ foo))))

Anyway, if you try this kind of LET in some implementations, you'll find
that they get it right (the special declaration applies to the foo in
the init form) in the compiler but not in the interpreter.  

-- Jeff