[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

SETF-FUNCTION-VS-MACRO (Version 1)



    Date: Thu, 15 Oct 1987  20:21 EDT
    From: "Scott E. Fahlman" <Fahlman@C.CS.CMU.EDU>

    I have no problem with this proposal, except for the notion that the
    name of the setf-function associated with FOO should be a list, (SETF
    FOO).

    Would it not be simpler to introduce a new setf-able access function
    GET-SETF-FUNCTION which takes a symbol and returns the associated SETF
    function?  

The CLOS committee tried that for a long time, but it doesn't work.
Fundamentally the problem is that there has to be a name that the user
uses to define the thing and to talk about it.  Trying to hide the name
just means you use a more obscure name, like an alternate syntax for
DEFUN or DEFUN-SETF or something.

    The one problem I can see with this alternative proposal is that it
    there is no very good way to do something like FLET for the setf
    function if there is not a name-like entity that can be bound.  

Precisely.  That's the reason for making the name explicit.

    I assume that this would not preclude the addition of something like the
    function specs that are present on the Lisp machine?

Right.  There could be other function names that are not symbols, however
we don't really need to propose any others for CLOS.

    I assume that in either case one must use
    an explicit funcall and not just drop this "name" into the car-position
    of an expression to be evaluated.

Yes, the extra complexity of allowing something new in the car of a form
didn't seem to be justified.  I guess I should have listed that among the
rejected ideas at the end.