友人に Java で関数合成するプログラムを作れって課題の相談をされて一緒に考えた。で、せっかくだから勉強も兼ねていろんな言語で書いてみた。Java 以外はほとんど書いたことのない言語。 問題 f(x) = ex g(x) = x2 h(x) = -x + 1 f⋅g⋅h を Java で表せ。 上のような感じの問題らしい。人伝(ひとづて)。 Java ver. 1 まずは課題でもある Java から。一番手慣れた言語。でも、ラムダ式を扱えないので悩んだ。継承でオーバーライドすることで、関数本体を与えるようにすることで解決。まじめに、なるべく型はインターフェースで。抽象クラスも使って。ブログ書いてる今思うとこんなところまじめにしなくてもいいのに。 目指すは次のような形で書けること。 Function composed = f.compose(g).compose(h); 初めエンクロージン