Re: lambda-returning defmacro, capture



(message (Hello 'Juho)
(you :wrote :on '(13 Dec 2006 19:26:15 GMT))
(

JS> No, it is undefined behaviour. The standard specifies (in 3.1.2.1.1)
JS> three kinds of variables, none of which VARR fits. The standard also
JS> doesn't specify what should be done for non-variables that are used
JS> syntactically like variables.

no, it IS a variable.

the standard defines what unbound variable is, but is it dynamic, lexical or
constant variable unbound? :)

looks like (setf (symbol-value 'varr) 1) creates a global binding, so it's
not a unbound variable.

i think you can assume that it's a dynamic variable when referenced in
top-level, since description of what dynamic varibles is is very vague :)

JS> It happens that all implementations I know of have chosen the same
JS> behaviour for this, and interpret VARR as referring to the value slot
JS> of the symbol (though sometimes with warnings of an undefined variable
JS> being used).

which ones produce warning? i've checked acl, lispworks, clisp and sbcl --
no one produces warnings.

i'm not sure, but i think unless we assume that this interpretation of
standard is correct, we can find a contradiction in standard -- that is much
worse than simply 'undefined behaviour'.

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"People who lust for the Feel of keys on their fingertips (c) Inity")


.