From: Vassil Nikolov on

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