関数オブジェクト

昨日のConsを使って関数オブジェクトを作ってみた。static methodみたいなものなのだけど、集合やリストに渡して各要素を計算させたり、……。
引数の型チェックを書かないでよいので、Consの型表記が面倒でも使い道はあるかもしれない。動作速度については Cons生成コスト 対 Object[]生成コスト+instanceof演算コスト の交換になる*1
Functor.java

public interface Functor < Argument extends Cons, Result > {
    Result evaluate(Argument arg);
}

*1:少し速くなるかな?