2008/11/17 Kevin Reid <[EMAIL PROTECTED]>: > On Nov 16, 2008, at 7:52, Attila Lendvai wrote: > >> dear list, >> >> i've got this patch pending: >> >> (defmacro ensure-functionf (&rest places) >> "Call ENSURE-FUNCTION for each place in PLACES and store back the >> results." >> `(progn >> ,@(mapcar (lambda (place) >> `(setf ,place (ensure-function ,place))) >> places))) >> >> it might be controversial, so i'll first send it here. if noone >> complains for a week or two, then i'll push it eventually. > > For what little it's worth: I think this and ENSURE-FUNCTION are abuse > of the naming conventions employed by the CL specification.
Agree. ensure-generic-function creates a generic function. ensure-directory-exist creates a directory if it does not exsist ensure-class, is used to define or redefine a class. "ensure-function" is best defined like this: (defun coerce-function (sym) (coerce sym 'function)) > "ensure" is a mutating concept: see cl:ensure-generic-function, > cl:ensure-directories-exist. These potentially mutate a function slot > and the filesystem, respectively. (alexandria:ensure-symbol is an > example of correct usage.) > > That is, this proposed operator should be called ENSURE-FUNCTION and > the current ENSURE-FUNCTION should be called something else. (Perhaps > ACTUALLY-FUNCTION or AS-FUNCTION or some sort of name expressing de- > indirection?) > > Also, I think "f" doesn't mean "in-place version of other operator", > but only "operates on a place"; e.g. PUSH is not CONSF, INCF is not > 1+F, and SETF is not, uh, NTH-VALUES-2F? The CLHS examples for DEFINE- > MODIFY-MACRO arguably disagree with me, though. I don't feel this is > nearly as important as preserving what ENSURE means. > > -- > Kevin Reid <http://homepage.mac.com/kpreid/> > > > > _______________________________________________ > alexandria-devel mailing list > alexandria-devel@common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/alexandria-devel > -- Knut Olav Bøhmer _______________________________________________ alexandria-devel mailing list alexandria-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/alexandria-devel