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

setf order of evaluation


 (setq r '(a 1 b 2 c 3))
 (setq s r)
 (setf (getf r 'b) (progn (setq r nil) 6))

what is the value of R and S?

Note that P97 of CLtL states that SETF guarantees the
left-to-right order of evaluation of its arguments.

(yes, i know it is crufty to change R).

Both Symbolics and Lucid seem to generate
 R = (B 8) and S = (A 1 B 2 C 3)

which implies that the second argument of setf
is evaluated first. What did I miss?

IBM T.J. Watson Research Center
Yorktown Heights, N.Y. 10598