[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: mike%acorn@LIVE-OAK.LCS.MIT.EDU
- From: Jon L White <edsel!jonl@labrea.Stanford.EDU>
- Date: Fri, 8 Apr 88 03:29:24 PDT
- Cc: POTHIERS%TUVA.SAINET.MFENET@nmfecc.arpa, COMMON-LISP@sail.stanford.edu
- In-reply-to: email@example.com any day now's message of Wed, 6 Apr 88 09:10 est <8804062003.AA27180@edsel.lucid.com>
re: There are a few problems here. First, to compile (setf (foo-a x) 1)
you would have to have the structure predefined, since "setters" are
not even required to be callable functions by common lisp.
Interestingly enough, one of the proposals before the X3J13 "Cleanup"
committee is to add the notion of SETF-FUNCTIONS to the language. This
would provide for every accessor name, a canonical updator name such that
if that updator name is fboundp, then it is the "callable function"
for doing the SETF.
It isn't immediately obvious from the "Cleanup" proposal, but a consequence
is that (SETF (FOO ...) Y) will never generate an error during compilation
or macroexpansion; for if there is no "SETF macro", then the canonical
updator name must be used, and it is quite permissible to supply the
defunition for that name at a later time (but of course, not later than
the first call to it!).
-- JonL --