私は "Practical Common Lisp"を読んでいます。Common LispがDuck Typingをサポートしているかどうかは疑問です。ルビー?Common Lisp Object System(CLOS)はダックタイピングをサポートしていますか?
Rubyでは、呼び出し元が想定している名前と引数リストを持つメソッドを実装している限り、クラスに関係なくオブジェクトに対してメソッドを呼び出すことができます。
CLOSはどうですか?ジェネリック関数がそれに対処すると仮定することによって、クラスを考慮せずにオブジェクトのメソッドを呼び出すことは可能ですか? CLOSはメッセージの受け渡しの哲学に従わず、メソッドがクラスに束縛されていないため、おそらくダックタイピングは不要です。
注意点として、常に対処する関数が必要な場合(関数が見つからないランタイムエラーはありません)、 't'に特化することができます。たとえば、'(defmethod foo((着信オブジェクトt))...) '。 't'は型グラフの先頭です。 (CLtL2の2.15を参照)。 –
はい、わかりました。ありがとう。 –