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

"Written Responses" to CLOS 88-002: SETF Functions

re: . . . Thus if new-value was the last argument,
    it would be impossible for setf functions to have optional arguments, which
    would be a serious hindrance.  We considered schemes where the new-value
    argument came between the required arguments and the optional arguments,
    but rejected them as kludgey and error-prone.

Maybe we all "bought off" on that theory that one might need to specialize
on the "newvalue" argument;  but if that really isn't sufficient grounds 
for the incompatible change ("newvalue" argument being first rather than 
last, such as defsetf would do, and such as Symbolic's setf functions do),
then perhaps more work needs to be put into the cl-cleanup proposal.

In fact, there seem to be a couple of lacunae in the motivation for "SETF 
functions", as opposed to "function specs". Not only is there this issue 
of why the difference in order of arguments from DEFSETF style, but it 
needs to be stated somewhere that under this change no macroexpansion of 
a form like (SETF (<non-special-form>) ...) will every fail -- there will 
always be an alleged "setf function" that might be later defined to supply 
the need; and the only error a user might ever see will be something like 
"undefined function" when he actually tries to call it (or, "called, but 
not defined" when the file is compiled).

These criticisms where discussed briefly very late in the day at the last
x3j13 meeting, and there were more that I can't remember; try asking
Sondra Loosemore about them.   Maybe you could take a stab at fixing up 
the cl-cleanup proposal?  

-- JonL --