Tobias C. Rittweiler
tcr at freebits.de
Wed Dec 17 04:23:43 EST 2008
Robert Boyer <boyer at cs.utexas.edu> writes:
> > SETQ is a special form. It cannot be written by a
> > simple macro.
> I get dumber every day, but I increasingly enjoy it
> every time that someone shows me how wrong I am.
> What's so bad about:
> (defmacro new-setq (x y) `(set ',x ,y))
SET does not work on lexical variables.
CL-USER> (boundp 'foo)
CL-USER> (let ((foo :lexical))
(set 'foo :value)
CL-USER> (values (boundp 'foo) foo)
> In my remarks, I was thinking rhetorically and
> historically about Lisp way back at its creation in the
> 50s, way before the terms 'special form' and 'special
> operator' and 'special' were coined. No doubt you are
> right, though, in a fine sense.
Historically you're right, of course. That is before the introduction of
lexical variables. I wouldn't be surprised if the MacLisp compiler and
interpreter dealt with SETQ differently! :-)
More information about the Openmcl-devel