From ... From: Erik Naggum Subject: Re: setf functions Date: 2000/04/05 Message-ID: <3163950557082770@naggum.no>#1/1 X-Deja-AN: 607197879 References: <954804834669@NewsSIEVE.cs.bonn.edu> <38ea8083$0$21259@senator-bedfellow.mit.edu> mail-copies-to: never Content-Type: text/plain; charset=us-ascii X-Complaints-To: newsmaster@eunet.no X-Trace: oslo-nntp.eunet.no 954961761 25139 195.0.192.66 (5 Apr 2000 19:09:21 GMT) Organization: Naggum Software; vox: +47 8800 8879; fax: +47 8800 8601; http://www.naggum.no User-Agent: Gnus/5.0803 (Gnus v5.8.3) Emacs/20.5 Mime-Version: 1.0 NNTP-Posting-Date: 5 Apr 2000 19:09:21 GMT Newsgroups: comp.lang.lisp * Harald Hanche-Olsen | My point is that, as far as I can understand the Hyperspec, there is | no way to do this for a function returning multiple values, since the | form should be a place, which by definition can only refer to a single | value. I'd love to be proved wrong on this one, though. Or even if I | am right, maybe there is a more natural way to attack the problem? apart from actually working, what's wrong with this example? (defstruct display x y) (defun global-pointer-position (object) (values (display-x object) (display-y object))) (defsetf global-pointer-position (object) (new-x new-y) `(setf (display-x ,object) ,new-x (display-y ,object) ,new-y)) #:Erik