.NETでもカリー化できるかな? 続編
カリー化とカリー化解除と部分適用、あとはフリップを実装してライブラリーにしてみました。ニーズは知らない。
引数7個までオーバーロードを作ったので、困ることはないかなと思いますが…
NuGetパッケージマネージャーで「Curryng」とかで調べると出てくるかも。
コメント込みで300行にも満たない小さなライブラリかつニーズ不明ですけどね(2回目)。
使い方
Func<int, int, DateTime> year = (month, day) => new DateTime(2014, month, day); // カリー化して部分適用 var day = year.Curry()(5); // カリー化解除 var uncurried = year.Uncurry(); // 普通の関数を部分適用 var partial = uncurried.Apply(5); // 最初の2引数の順番を入れ替え(2引数のときのみカリー化してない関数も入れ替えできるオーバーロード有) var flipped = year.Flip();
追記
多少ニーズがあったらしく、公開から半日たたないうちに8回ダウンロードされていました。それでも1万2万DLされているライブラリには負けますかね
昨日ちらっと公開したNuGetパッケージ8回ダウンロードされてた
— ゆうなんとか@炎上案件 (@yuu_hara) 2014, 5月 8