Path: utzoo!utgpu!watmath!clyde!att!rutgers!rochester!pt.cs.cmu.edu!a.gp.cs.cmu.edu!ccm From: ccm@a.gp.cs.cmu.edu (Christopher McConnell) Newsgroups: comp.lang.lisp Subject: Re: SETF methods Message-ID: <3773@pt.cs.cmu.edu> Date: 6 Dec 88 03:36:42 GMT References: <613@cnetlu.UUCP> <3761@pt.cs.cmu.edu> <32895@think.UUCP> Organization: Carnegie-Mellon University, CS/RI Lines: 25 In-reply-to: barmar@think.COM's message of 5 Dec 88 17:24:52 GMT I can only assume that you did not read my original post: >The CLOS spec is specifying how to define setf methods (as in CLOS >methods with specializers) not the normal CL setf methods. So, you >have to say (defmethod (setf woof) (value (object blah))). You use >define-setf-method to define normal setf methods. I stand by it. In the AAAI-88 copy of the CLOS specification: (defmethod (SETF WOOF) (value (object blah)) ...body) is the defined way to define a setf method that is executed for (setf (woof object) value). The parameter was moved to the begining to allow &rest to capture a list of reference args. You can also write specializers for the value as well. The comment about define-setf-method was meant to apply to the question of how you would define a setf function for a NORMAL LISP function, not a CLOS generic function. (Since he was trying to use DEFUN with the CLOS syntax, I assumed he was trying to apply the CLOS syntax to the problem of a normal setf function.) I agree that (function (SETF WOOF)) should return the setf function and should be allowed in CL. --