8

クロージャとカリー化についての投稿をいくつか読んだのですが、答えが見つからなかったような気がします。では、クロージャとカリー化の違いと、おそらく類似点は何ですか?助けてくれてありがとう :)

4

1 に答える 1

6

カリー化は、何よりもまず数学的概念です。任意のn 項関数f: S 0 ×...S n → Rに対して、新しい関数fprime (マークダウンのバグが見つかったばかりです!) をn-1 個のパラメーターで定義して、最初のパラメーターを置き換えることができるというのは、単なる観察です。定数によって。したがって、 function がある場合、新しい関数を add(a,b)次のように定義できます。add1(b)

add1(b) ::= add(1, b)

...「::=」を「と定義されている」と読みます。

クロージャーは、プログラミングの概念に近いものです。(もちろん、プログラミングもすべて数学的概念ですが、プログラミングのおかげでクロージャは興味深いものになりました。) クロージャを作成するときは、1 つまたは複数の変数をバインドします。いくつかの変数が関連付けられたコードのチャンクを作成しています。

この関係は、カリー化を実装するためにクロージャーを使用できるということですadd1。最初のパラメーターが 1 にバインドされるクロージャーを作成することで、上記の関数を構築できます。

于 2008-12-17T16:05:11.330 に答える