1. ホーム
  2. javascript

[解決済み] キュアリング」とは何ですか?

2022-03-14 02:53:13

質問

私はいくつかの記事やブログでcurried関数への参照を見ましたが、良い説明(少なくとも意味のあるもの!)を見つけることができません。

どのように解決するのですか?

Curryingとは、複数の引数を取る関数を、それぞれが1つの引数だけを取る一連の関数に分解することです。以下はJavaScriptでの例です。

function add (a, b) {
  return a + b;
}

add(3, 4); // returns 7

aとbの2つの引数をとり、それらの和を返す関数です。これから、この関数をカレーにします。

function add (a) {
  return function (b) {
    return a + b;
  }
}

これは、引数を1つ取る関数です。 a そして、別の引数を取る関数を返します。 b で、この関数はそれらの和を返す。

add(3)(4);

var add3 = add(3);

add3(4);

最初のステートメントは7を返し、同様に add(3, 4) ステートメントを使用します。2番目のステートメントでは、新しい関数 add3 は、引数に3を加える。(これをクロージャと呼ぶ人もいます。) 3つ目の文は add3 という操作で、3に4を足して、やはり7を生成する。