【C#】部分適用
部分適用は、複数の引数を持つ関数の一部の引数を固定して新しい関数を作成する操作です
Func<int, int, int> add = (x, y) => x + y;
Func<int, Func<int, int>> addPartial = x => y => add(x, y);
Func<int, int> add5 = addPartial(5);
int result = add5(3);
Console.WriteLine(result); // 出力: 8
このコードは、C#で部分適用を用いて関数を作成し、それを使用して2つの数値を足し合わせる操作を行っています。
Func<int, int, int> add = (x, y) => x + y;addは、2つの整数を受け取り、それらを足し合わせて結果を返す関数を表します。
Func<int, Func<int, int>> addPartial = x => y => add(x, y);addPartialは、整数xを受け取り、yを受け取る関数を返す関数です。- 内部のラムダ式
(x, y) => add(x, y)では、add関数を呼び出して部分適用された関数を生成しています。この部分適用された関数は、最初の引数xを保持し、2番目の引数yを受け取ってadd関数を呼び出します。
Func<int, int> add5 = addPartial(5);add5は、addPartialを呼び出して部分適用された関数を取得しています。add5は、1つの整数を受け取り、それをadd関数の2番目の引数として与えることで、その整数と5を足し合わせる関数です。
int result = add5(3);add5を呼び出して部分適用された関数に引数3を渡し、結果をresult変数に格納しています。この場合、add5の内部では、最初の引数5と2番目の引数3を足し合わせることで、結果として8を返します。
Console.WriteLine(result); // 出力: 8resultの値である8をコンソールに出力します。
このコードは、部分適用を使用して関数の再利用とコードの簡潔さを実現しています。最初の add 関数を部分適用して新しい関数を作成し、それを再度部分適用して新たな関数を作成することで、異なる引数を保持する関数を作成しています。
訪問数 42 回, 今日の訪問数 1回






ディスカッション
コメント一覧
まだ、コメントがありません