ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

.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されているライブラリには負けますかね