C#で合成関数やろうかと思っていろいろ頑張ったけど、駄目だったよw
あんまり意味はないけど、たとえばこんなの。
Func<int, string> f0 = i => “number: ” + i.ToString();
Func<string, string> f1 = s => s.ToUpper();
Func<int, string> f = f1 * f0;Console.WriteLine(f(10));
ってのをやったときに、まあ予想できるだろうけど、”NUMBER: 10″ って出力されるわけよ。ここで断っておくと、
Func<int, string> f = i => f1(f0(i));
ってのは、俺のやりたいことじゃあないので、却下。
Func<int, string> GetHogeFunc(Func<int, string> f0, Func<string, string> f1);
っていうメソッドを作りたいわけ。
で、MethodInfo をオーバーライドしたクラスを生成するようなクラス作ればいいんじゃね? とか思っていろいろ調べて、MSIL とかもちょい書きかけたけど、ドつぼにはまりそうなのでやめたw 時間があればやってみたいが、時間がないのでやめたぜ。やってもできないかもしんないけどw