[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
COMPUTE-DISCRIMINATING-FUNCTION and friends
- To: mop.parc@xerox.com
- Subject: COMPUTE-DISCRIMINATING-FUNCTION and friends
- From: kanderso@DINO.BBN.COM
- Date: Thu, 8 Nov 1990 13:21:34 PST
- Cc: kanderson@DINO.BBN.COM
I'm having trouble following the description of building an "installed
discriminating function" which uses the functions on pages 3-41 to
3-51.
1. I think the first 3 paragraphs "PURPOSE" section of
COMPUTE-DISCRIMINATING-FUNCTION is confusing to anyone who wants to
get some idea of how a discriminator is built.
The first paragraph should state that a gf's "insalled descriminating
function" is determined by calling COMPUTE-DISCRIMINATING-FUNCTION if
that is the case.
The second paragraph says "To determine the ordered set of applicable
methods ...", but never says why one would want to do that. The
reason of course is to compute the effective method (for a particular
set of arguments?). Perhaps there should be a reiteration, or a
reference to the secton "Determing the Effective Method" from section
I.
I'd like to see the first paragarph replace with something like:
The gf compute-discriminating-function is called to determine the
discriminating function for a generic function. The discriminating
function implements the behavior of the generic function and it can be
installed using set-funcallable-instance-function.
The contract of the discriminationg function is to produce the proper
behavior when the generic function is called with a set of arguments.
This is done by invoking an appropriate effective method. The
effective method is determined as described in section "Determining
the Effective Method". The following metalevel generic functions aid
in this process....
2. What kinds of extentions does
COMPUTE-APPLICABLE-METHODS-USING-CLASSES? help you build? Does it
really make lots of neat extentions simpler? What happens to it if we
adopt Gregor's specializer proposal? It seems like we'll have to add
more metalevel support inside compute-applicable-methods.
k