From ... Path: archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!isdnet!diablo.theplanet.net!newsfeed.esat.net!nslave.kpnqwest.net!nloc2.kpnqwest.net!nloc.kpnqwest.net!nmaster.kpnqwest.net!nreader1.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: SETF : Ambiguous? References: <8078c580.0111220403.5878d88f@posting.google.com> Mail-Copies-To: never From: Erik Naggum Message-ID: <3215431275217808@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 24 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 22 Nov 2001 15:21:16 GMT X-Complaints-To: newsmaster@KPNQwest.no X-Trace: nreader1.kpnqwest.net 1006442476 193.71.66.49 (Thu, 22 Nov 2001 16:21:16 MET) NNTP-Posting-Date: Thu, 22 Nov 2001 16:21:16 MET Xref: archiver1.google.com comp.lang.lisp:20741 * Rene_de_Visser@hotmail.com (Rene) | However I didn't see where the order of place and new value was defined in | the Hyperspec for SETF. There is nothing special about the evaluation order for setf. The standard Common Lisp evaluation order is strictly left to right. Any deviation from this is a serious bug. (let ((x (list 1 2 3))) (setf (cdr (progn (format t "First base!~&") x)) (progn (format t "Second base!~&") (list 3 5))) x) In a conforming Common Lisp implementation, this _must_ print First base! and Second base! in that order and return (1 3 5). /// -- Norway is now run by a priest from the fundamentalist Christian People's Party, the fifth largest party representing one eighth of the electorate. -- Carrying a Swiss Army pocket knife in Oslo, Norway, is a criminal offense.