[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends:00506] Re: 型情報によるディスパッチ ( に似たもの) がメソッドオーバーロードで実現できない理由 ? (Re: Java プログラマーのための Perl 入門 ?)
えんどうです。
>>やっと分かりました。
>>
>>親の型の配列に入っているから「ディスパッチ」されない、
>>ということですね?
>
>そういうことです。足掛け2世紀にわたる勘違いが解消されたことを
>お祝いいたします。
これですけど、
「Javaのメソッドオーバーロードがコンパイル時に静的に行われるから」ダメ
なのではなくて、
「JavaにLispのようなリストがないから」ダメ、
なのではありませんか?
Lispでは (point line circle) というぐあいに、
異なった型を内包するリストが書けます。
このリストに対して、
(map (lambda (x) (draw x)) '(point line circle))
こんな描画をすることができます。
Javaのメソッドオーバーロードが静的だろうが動的だろうが、
「Lispのリストのように異なる型を内包できるデータ表現」があれば
Lispと同じことができるのでは?
--
ENDO Yasuyuki <yasuyuki@xxxxxxxxxxxx>
http://www.javaopen.org/~yasuyuki/
http://www.javaopen.org/jfriends/