[Python-Dev] Looking for master thesis ideas involving
Python
Phillip J. Eby
pje at telecommunity.com
Thu Oct 30 12:37:24 EST 2003
At 01:43 PM 10/30/03 +0100, Samuele Pedroni wrote:
>- multi methods cover some ground also coverd by interfaces and adaptation:
> *) a generic function/multi method is also an interface
> *) some of the things you can achieve with adaptation can be done with
> multi methods
>Once you have multimethods do you still need adaptation in some cases or,
>could one obtain the functionality otherwise or do you need dispatch on
>interfaces (not just classes), how would then interfaces look like and the
>dispatch on them?
With a sufficiently powerful predicate dispatch system, you could do away
with adaptation entirely, since you can simulate interfaces by implementing
a generic function that indicates whether a type supports the interface,
and then defining a predicate type that calls the generic function.
That is, I define a predicate type IFoo such that ob is of type IFoo if
'implementsIFoo(ob)'. Then, for any type that implements the interface, I
define a multimethod saying that implementsIFoo() is true for objects of
that type. Then, I can declare multimethod implementations for the IFoo
predicate type.
What I'm curious about is: is there any way to do it *without* predicate
types? Could you have an "open ended union" type, that you can declare
other types to be of, without having to inherit from a base type?
More information about the Python-Dev
mailing list