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

DEFSETF



I'm having some difficulty understanding your DEFSETF description.  (Not
your fault -- it seems to be impossible to describe any adequate DEFSETF in
human-readable form.)  Would it be possible to put the code file
somewhere where the rest of us can see it?  It might be easier to grok the
code than the prose in this case.

Whatever we do about the rest of DEFSETF, I am adamantly opposed to
allowing multiple values to come in from the "new value" form, let alone
multiple values with &optional and &rest provisions.  I haven't
implemented this in our DEFSETF and don't plan to.  In part, this is
because implementing this is a pain, but to a large extent the objection
is philosophical.

To me SETF takes a form that accesses one Lisp storage cell and stuffs a
new value into that cell.  This SETF business is hairy, but as long as
users can hang onto that basic point of view, there is some hope that
they will be able to cope with this construct.  If we muck around with
this, then SETF/DEFSETF is just an incredibly hairy format for defining
arbitrary macros.  That's too high a price to pay for cute but useless
things like UNCONS.  If anyone can demonstrate some real need for
multiple values here, I might change my mind.

-- Scott