[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/