Prev: can someone elaborate on this metaprogramming blog entry?
Next: simulating local lexical variables with symbol macros
From: Vassil Nikolov on 5 Nov 2009 00:46 On Thu, 05 Nov 2009 00:25:50 -0500, Vassil Nikolov <vnikolov(a)pobox.com> said: > ... > but [(ROTATEF P1 P2)] must be executed as if it expands into > ;; (ii) > (let (t1 t2) > (setf t1 p1) > (setf t2 p2) > (setf p1 t2) > (setf p2 t1)) ...with the mechanics of setf expanders _having been applied_, so that there is a "safe fix" on the storage locations for P1 and P2 before any updates are made. That proviso is significant because without it (let (t1 t2) (setf t1 n) (setf t2 (aref a n)) (setf n t2) (setf (aref a n) t1)) loses, too. (Algol's problem was that it did not have a mechanism equivalent to Common Lisp's setf expanders.) I hope it takes me no more than a finite number of posts to catch all my mistakes in this thread... ---Vassil. -- "Even when the muse is posting on Usenet, Alexander Sergeevich?"
From: Scott Burson on 5 Nov 2009 10:43
On Nov 4, 6:17 pm, Spiros Bousbouras <spi...(a)gmail.com> wrote: > And while I'm at it, is there an errata list for the HS somewhere ? An informal errata list is maintained at http://www.cliki.net/Proposed%20ANSI%20Revisions%20and%20Clarifications -- Scott |