[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.