[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

lexical madness



The definition of psetf specifies that the evaluations are performed
from left to right, but specifies that "all the assignments are
performed in an unpredicatable order"
There is, however, nothing said about the order in which `let' bindings
are made, only that "all the variables ... are bound to the
corresponding values in parallel"
So, to what should "(let ((x 1) (x 2)) x)" evaluate?

Other lacks of insight from the latest descent into Interpreted Hell:
* Was anything definitive resolved about the pervasiveness of
  (not)inline and ftype declarations in the presence of flet and labels?

* I assume that
  "(let* ((x 1)
          (x (1+ (symbol-value 'x))))
     (declare (special x))
     x)"
  evaluates to 2 (ie the special declaration applies to all bindings)
  The same goes for multiply-bound variables in lambda-lists.

Next week: confessions of a wimplementor..