Clojureのdeftypeやdefrecordではinterfaceのみを実装することができます。
しかし、継承のように実装があるclassを継承したいときがあります。
例えばこんなコードがあります。
ConsとNilのaddとemptyの実装が同じです。
共通化したい。
とりあえず、addとemptyを別Protocolに。
ListというProtocolを作って、それに対するAdderを定義します。
ConsとNilに対してListを実装すれば、めでたしめでたし。
0 件のコメント:
コメントを投稿