2012-09-08から1日間の記事一覧

C#でカリー化と部分適用

C#

勉強会で話題になっておもしろかったので、実装してみました。 カリー化 4つの引数まで対応したFuncの拡張メソッド。 public static class FuncCurry { public static Func<T1, Func<T2, TResult>> Curry<T1, T2, TResult>(this Func<T1, T2, TResult> f) { return arg1 => arg2 => f.Invoke(arg1, arg2); } public st</t1,></t1,></t1,>…

部分適用の使いどころ

C#

部分適用というのは、簡単に言ってしまえば、関数の型を変換する方法の1つです。たとえば、Func を Func に変換するとか。部分適用という言葉を使わずとも、これはよく行われていることで、ラムダ式を使って実現されます。わかりやすいように、型を明示して…

継承やインタフェースはほんとうにいらないかもしれない

F#

http://blog.livedoor.jp/gab_km/archives/1425937.htmlだって、F#にはレコードがありますから。(いまさらのリアクションでごめんなさい) type Animal = { name: string; bark: unit->string } let makeDog name = { name = name ; bark = fun () -> "Bow …