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

DECLARE SPECIAL Considered Confusing



    Date: 5 Jul 86 16:54 PDT
    From: Pavel.pa@Xerox.COM

    What do people think?  It would appear that some implementations already
    work this way.

I agree.  Consider LET to be a macro that turns into LAMBDA:
	(let ((foo (1+ foo)))
	  (declare (special foo))
	  foo)
	=> ((lambda (foo)
	      (declare (special foo))
	      foo)
	    (1+ foo))
[I think this is what MacLisp actually did (does?).]  The scoping here
is clear: the foo in (1+ foo) is outside the scope of the declaration.