[Python-3000] Abilities / Interfaces
Phillip J. Eby
pje at telecommunity.com
Wed Nov 22 18:59:38 CET 2006
At 09:42 AM 11/22/2006 -0700, Steven Bethard wrote:
>Yeah, it certainly seems like in both this case and the string case,
>there needs to be some shorthand for saying "implements all the basic
>String/Number/whatever methods".
But we are probably better off composing such a concept *from* the methods,
rather than having the concept be merely a container *of* methods.
This is basically the difference between Java interfaces and Haskell's
notion of "typeclasses". You can define typeclasses like "ordered" or
"four-function arithmetic" and it's okay if they overlap, because they're
defined in terms of the operations you can perform. So nothing prevents
somebody else from making "six-function arithmetic", or "reversible
strings" or whatever. And nobody has to *re*define their type as
supporting these new "interfaces", as long as they have the requisite
operations.
So, if we have to have something like an interface, let's steal Haskell's
version of the idea instead of Java's, because it involves a lot less
typing. :)
More information about the Python-3000
mailing list