【入門】CommonLispその2【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
0673668
2007/02/27(火) 05:39:20これでどうよ
まとめると,「共に,単一の名前に複数の関数を関連付ける」という点では共通しているが...
>>672が言ってるのは:
オーバーロードは静的に(オペランドを与える式の型に従って)解決される
総称関数は動的に(実際にオペランドとなったオブジェクトの型に従って)解決される
(>>670曰く,この点で総称関数はJavaでオーバーライドされたメソッドの解決と似ている)
>>670が言ってるのは:
オーバーロードでは引数リストが違うものを同じ名前に関連付けてよい
総称関数では関連付けられる関数(メソッド)たちの引数リストは共通してなければならない
おまけ
CLOSの総称関数では型のみならず個々のインスタンスについても動作を変えられる(EQLスペシャライザ)
(例えば「第1引数がnumberだったら」に限らず「第1引数が 0 だったら」みたいな)
まぁこうやって羅列されたの読んでもいいプログラム書けるようにはならないわけですが...
■ このスレッドは過去ログ倉庫に格納されています