[Openmcl-devel] Compiler warnings

james anderson james.anderson at setf.de
Wed Oct 21 16:31:37 UTC 2009


On 2009-10-21, at 18:15 , Ron Garret wrote:

>
> On Oct 21, 2009, at 8:33 AM, Daniel Weinreb wrote:
>
>> [...]
>
>> The following paragraph will make sense (even if you
>> disagree with it) if I am understanding your use of
>> the vocabulary as you mean it; not, if not.
>>
>> Whether a symbol has been declared special is one of the
>> inputs to the decision that the evaluator makes as to
>> whether to treat a symbol (when seen in context of
>> being a varible) as dynamic versus lexical.  Although
>> a top level "(setq x 5)" does not declare the symbol x
>> special, Lisp nevertheless treats it as a special variable.
>
> No, Lisp does *not* treat it as a special variable, at least not as
> defined in the spec.  If it did, the following would return 2:
>
> (setf x 1)
> (defun foo () x)
> (let ((x 2)) (foo))
>
> but it doesn't, it returns 1.

well, it does. sometimes. as a side-effect of using the symbol value  
cell.

? (let ((x 2)) (declare (special x)) (foo))
2

[ it's among the examples in my previous post. ]


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clozure.com/pipermail/openmcl-devel/attachments/20091021/dab0491f/attachment.html>


More information about the Openmcl-devel mailing list