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