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

generic function

    Date: Sun, 21 Jul 1991 05:35 EDT
    From: barmar@Think.COM (Barry Margolin)

	Date: Mon, 22 Jul 1991 08:27 EDT
	From: smith@icat.larc.nasa.gov (Steven L. Smith)

	Is there way to define a generic function which will specialize
	based on the number of arguments passed. For example, I'm trying
	to do the following:

    Neither Flavors nor CLOS support this; all generic function dispatch is
    based on types or equality.  Maybe it's possible to do it in CLOS by
    using the meta-object protocol to define a new class of generic
    functions that implements a different kind of dispatching.

Although the general problem is often quite easily solved without
meta-objects by just re-casting the problem description to involve a
second function, which makes the number of arguments into something that
can be dispatched off of:


 (DEFGENERIC FN2 (N ...other args...) ...)

The original discussion was about specializing FN1, but if you don't
mind dispatching on FN2 instead, this solution works nicely.

Note that a similar solution has occurred in CLOS with the way DESCRIBE
and DESCRIBE-OBJECT are handled.  DESCRIBE is the function the user
calls, but DESCRIBE-OBJECT is the thing you customize.