あんまり管理もしてない今日この頃ですが皆様いか(略)。
今回は型引数をバインドするカリー化ができないかと言う話。
一応解説しておくと、カリー化とは要するに引数の一部を固定した関数を作ることです。こんなサンプルコードでご理解いただけるでしょうか。
staticint Add(int x,int y) {return x + y; }staticint Add5(int x) {return Add(x, 5); }publicstaticvoid Main() { Console.WriteLine(Add5(4));}
この場合、Add メソッドの引数 y を 5 に固定した Add5 メソッドを新たに作成しています。まあサンプルのためのサンプルなんで意味は無いですけどね。ちなみに関数作成はラムダ式など使って表現することが多いです。
staticvoid Main() { Func<int,int> addx = x => Add(x, 5); Console.WriteLine(addx(4));}' ちなみに VB だとラムダ式はこんな形になるそうな。PublicSharedSub Main()Dim addxAs Func(OfInteger,Integer) =Function(x) Add(x, 5) Console.WriteLine(addx(4))End Sub
本題を読むここ(hongliang.seesaa.net)で公開しているものについて、利用は自由に行って頂いて構いません。改変、再頒布もお好きになさって下さい。利用に対しこちらが何かを要求することはありません。
ただし、公開するものを使用、または参考したことによって何らかの損害等が生じた場合でも、私はいかなる責任も負いません。
あ、こんなのに使ったってコメントを頂ければ嬉しいです。
この広告は90日以上新しい記事の投稿がないブログに表示されております。