多重ディスパッチ
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