[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
lset not define
Date: Mon, 13 Jun 88 11:08:07 EDT
From: Jonathan A Rees <JAR@AI.AI.MIT.EDU>
SET is not a binding form, just as := is not a binding form in Algol.
It doesn't know a priori in what environment the assignment should
take place. PL/1 and Common Lisp assume some default environment
for assignments, but that seems unclean.
I don't think Common Lisp assumes some default environment for
assignments. There is no mention in the book of what
(SETQ FOO 1)
means if FOO is not
- visible in a lexical binding,
- proclaimed special (possibly via DEFVAR or DEFPARAMETER), or
- declared special.
It is true that every Common Lisp implementation of which I know
assumes FOO is special in such a case, but I don't believe it is
required by the book. Another reasonable interpretation would be that
such assignments (and corresponding references) are illegal.