In article <·····················@cunixf.cc.columbia.edu> ····@cunixf.cc.columbia.edu writes:
>(defun foo (x)
> (let ((x x))
> (declare (special x))
> x))
>
>When I try to compile this, I get the message:
>;;; Warning: Variable X is bound but not referenced
>
>However, it seems to me that both bindings of X are referenced.
The original CLtL specified that the scope of a declaration in the body of
a binding form includes the initialization forms. This was changed by
X3J13. See p.218 of CLtL2 for an example of the old specification; p.219
describes the change.
Lucid mostly implements Lisp as specified in CLtL, with selected CLtL2
features (e.g. conditions and CLOS).
--
Barry Margolin, Thinking Machines Corp.
······@think.com
{uunet,harvard}!think!barmar