「カリー化」とは何ですか?質問する

「カリー化」とは何ですか?質問する

いくつかの記事やブログでカリー化された関数への言及を見てきましたが、適切な説明 (または少なくとも意味をなす説明) を見つけることができません。

ベストアンサー1

カリー化とは、複数の引数を取る関数を、それぞれが 1 つの引数のみを取る一連の関数に分解することです。以下は JavaScript の例です。

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

add(3, 4); // returns 7

aこれは、と の2 つの引数を受け取り、それらの合計を返す関数ですb。この関数をカリー化します。

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

これは、1 つの引数 を受け取りa、別の引数 を受け取る関数を返す関数でありb、その関数はそれらの合計を返します。

add(3)(4); // returns 7

var add3 = add(3); // returns a function

add3(4); // returns 7
  • 最初のステートメントは7add(3, 4)ステートメントと同様に を返します。
  • add32 番目のステートメントは、引数に追加するという新しい関数を定義します3。これは、クロージャと呼ばれることもあります。
  • 3 番目のステートメントでは、add3演算を使用して を加算し34結果として 7 が生成されます。

おすすめ記事