>>>>> On Mon, 08 Oct 2012 17:38:42 +0200, Didier Verna said: > > Pascal Costanza wrote: > > > Just guessing: If you see that the writer form is a funcall to a setf > > function, you can then check with fboundp if such a function actually > > exists. This is probably a bit shaky, but maybe good enough for > > practical purposes? > > Good idea. To be more precise: > > - if the writer form is something else than (FUNCALL #'(SETF FOO) ...) > then there is a defsetf going on (it even takes precedence over a > potential setf function). > > - if the writer form is (FUNCALL #'(SETF FOO) ...) and that function is > bound, then there is a setf function going on but no defsetf. > > - otherwise, there is no writer at all. > > > I think this might just work.
As Pascal said, it's a bit shaky. E.g. a user could define (defsetf foo (x) (y) `(funcall #'(setf foo) ,y ,x)) which gives a false negative. Also, it won't be portable, because the (FUNCALL #'(SETF FOO) ...) form isn't required (the standard just specifies something with the same effect as it). -- Martin Simmons LispWorks Ltd http://www.lispworks.com/ _______________________________________________ pro mailing list [email protected] http://lists.common-lisp.net/cgi-bin/mailman/listinfo/pro
