I come to praise .join, not to bury it...

Alex Martelli aleaxit at yahoo.com
Fri Mar 9 15:53:59 CET 2001

"D-Man" <dsh8290 at rit.edu> wrote in message
news:mailman.983990532.16307.python-list at python.org...
> | Python does not have multi-methods: it's a single-dispatch
> Where can I learn about multi-methods and their
> usefulness/applicability?

A Python implementation by Neel Krishnaswami was announced on
and is available among other interesting Python snippets on
his page, http://www.sff.net/people/neelk/open-source/.
(Not sure if it still works with 2.0 or 2.1, but, roughly,
it should).  On the same page you'll find some Dylan pointers,
including one to a paper by Chambers and Chen on how to best
_implement_ multimethods.

If you're a member of the ACM, you can obtain classical papers
from ACM publications on the _use_ of multimethods -- e.g.,
which describes the architecture of "Solo", a portable windowing
system written in Common LISP (CLOS) with multimethods -- key idea
from the abstract being "Generic dispatch on multiple arguments, a
feature unique to CLOS, allows a simpler and more flexible input
event dispatching protocol" (it's not "unique to CLOS" any more,
as Cecil, Dylan etc have also adopted it, but it was in 1989 when
the paper appeared).

I'm not aware of good papers freely available with similar
information on "what would we DO with multimethods [if we
had them]" -- any URLs would be appreciated!-)

> Ok, so instead of calling "join" a "string method" how about using the
> following Java-Python hybrid snippet to describe it :
> interface Joiner :
>     abstract Object join( Sequence s )
> class String implements Joiner :
>     String join( Sequence s ) :

Sure, if Python had 'interface' and 'implements' that IS no
doubt how it would look!  "ya got it".

> This does make sense to me.  It looks logical and reasonable.  You
> have convinced me Alex.  Your English (and writing) classes have paid
> off ;-).  You must have been a writer before computers took over ;-).

Actually, I'm not really old enough to remember the time "before
computers took over"... [actually, I am -- but you won't catch
me dead admitting I'm THAT old:-)].


More information about the Python-list mailing list