多重ディスパッチ
Multiple dispatch, Dynamic dispatch
マルチメソッド(multi method)」とも言う
Dynamic Dispatchの中でも複数のオブジェクトが関与するもの
同名の関数の複数の仮引数の型を見て、どの関数を呼び出すかを決定する
まさにJuliaの多重ディスパッチの感じ
関与するオブジェクトが2つのときの多重ディスパッチのことを特に「ダブルディスパッチ」と言ったりする
多重ディスパッチはλ&計算によって形式化される
使用例
Python
https://www.ibm.com/developerworks/jp/linux/library/l-pydisp/index.html
Julia
Juliaの多重ディスパッチ
C#
dynamicを使う
Java
Javaでは単一ディスパッチしかできないので、つまり多重ディスパッチはできない
が、Visitorパターンを使うことで似たようなことができる
Cecil
CLOS
これは言語ではない
参考
雑記 多重ディスパッチ - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
一番しっくり来た
https://ja.wikipedia.org/wiki/多重ディスパッチ
https://en.wikipedia.org/wiki/Multiple_dispatch