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

SETF-FUNCTION-VS-MACRO (Version 1)



    Date: Thu, 15 Oct 87 17:11 EDT
    From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>

First let me say that I am a very strong supporter of this proposal.
Moon and I actually worked on it a fair amount before he wrote it up, I
think it would be a significant improvement to the language.

In particular, I would like it to be the case that however we finally
write this up, we make it clear that in many cases (not all cases)
defsetf is now obsolete.  I believe that having programs which don't
need to use defsetf avoid doing so will considerably simplify the Common
Lisp evaluator as seen by those programmers.  I believe that teaching
the style of SETF which doesn't use defsetf (long) before the style
which does will make it more understandable to students.


    Date: Thu, 15 Oct 87 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).  This seems like a more radical change than is really necessary to
    accomplish the stated purposes.  It is a considerable extension to the
    idea of a "function name", at least for standard Common Lisp
    implementations that do not implement Lisp machine style
    function-specs.

Of course another solution to this problem would be to say that the
function name for the "setf function" for FOO is |SETF FOO|.
Specifically, instead of having the mapping:

   package::foo  ==>  (setf package::foo)
   package::foo  ==>  package::|SETF FOO|

Of course |bar| would become |SETF bar|.

The advantage of this is it doesn't require introducing list function
specs.

If we do introduce list function specs, we have to decide wether they
can appear as the car of a form (I assume they can't).
-------