Multiple dispatch again

Bruce Hoult bruce at
Thu Jan 2 20:40:47 CET 2003

In article <3e14589e_5 at>,
 "Samuele Pedroni" <pedronis at> wrote:

> > As well, I decided to make dispatch resolution order configurable.
> > Hochberg's example was perhaps naive in fixing resolution order
> > according to definition order.  That seems a little fussier than I would
> > want.  So I made that configurable as well, and provide four sample
> > resolution functions.  Two are naively definition-order based (either
> > forward or reversed).  But two others are perhaps better candidates:
> > 'lexicographic_mro()' and 'weighted_mro()'.  If I understand correctly
> > (which I may not), the first follows Dylan, the second follows Damian
> > Conway' Class::Multimethods.  I would be interested to understand other
> > examples, particularly CLOS.  I have little intuition about what is the
> > "right" answer.
> lexicographic is default CLOS approach, in Dylan:
> given B isa A,  then the signatures
> (B,A)
> (A,B)
> would be ambiguous. (but if I recall correctly some(one) Dylan impl use the
> CLOS ordering and not the Dylan one, oh well).

Functional Objects' Dylan system started with a lot of code that is 
based closely on libraries from CLOS and depends ont the CLOS ordering.  
I think they try to use the Dylan ordering, and if it ambiguous then 
they fall back to CLOS.

-- Bruce

More information about the Python-list mailing list