代表の中村です。
インドの人は何でもCurryにするそうですが、関数については私もCurryにした方がいいと思っています。
でも、そういうと必ず反対の言葉が返ってくるのです。
「いや、そんなことしても意味ないですよ」
違います!Curryにすると便利だし、なによりエレガントなコードになる。
でも、更に反論が来ます。
「だけど、関数型言語でしかできませんよね」
いいえ、できるんです!
C#だったら、
public static Func<T2, R> Apply<T1, T2, R>(this Func<T1, T2, R> f, T1 t1) => t2 => f(t1, t2);
Javaだったら、
public static <T1, T2, R> Function<T2, R> apply(BiFunction<T1, T2, R> f, T1 t1) { return t2 -> f.apply(t1, t2); }
ほら、できたでしょ!
皆さんも食わず嫌いはやめて、ぜひ、何もかもCurryにしちゃって下さい。
最近、小料理屋で「おでんカレー」という、いかにも不味そうな名前のものを食べたのですが、意外に美味しかったです。