Clojure Protocols & expression problem

Lutger lutger.blijdestijn at gmail.com
Wed Apr 28 13:19:34 PDT 2010


bearophile wrote:

> According to the paper from Bjarne Stroustrup:
> http://www.research.att.com/~bs/multimethods.pdf
> 
> this is a possible syntax D3 can use for the double dispatch:
> void foo(@virtual A a, @virtual B b) {}
> 
> Bye,
> bearophile

I have studied this paper a bit once, it's good. It also shows that their 
multimethod implementation is faster than the visitor pattern. I would love 
to never see a visitor pattern again, it really sucks compared to 
multimethods. 

I think we can first try to make a multimethods library, and we need only one 
addition to __traits ( to get the overloads of free / static functions) for 
*open* multimethods. 

I tried it once but found it not that easy. It should be possible to have a 
(perhaps slow) proof of concept that rivals the python example you gave in 
conciseness.







More information about the Digitalmars-d mailing list