2013年2月2日土曜日

Clojureで継承みたいなナニカ

Clojureのdeftypeやdefrecordではinterfaceのみを実装することができます。
しかし、継承のように実装があるclassを継承したいときがあります。

例えばこんなコードがあります。


ConsとNilのaddとemptyの実装が同じです。
共通化したい。

とりあえず、addとemptyを別Protocolに。


ListというProtocolを作って、それに対するAdderを定義します。


ConsとNilに対してListを実装すれば、めでたしめでたし。


0 件のコメント:

コメントを投稿