カードリング
6309 ワード
関数プログラミングは、複数の引数を持つ関数を一連のネスト関数に変換します.
形はカレーです.
すべてのパラメータが使用済みになるまで、新しい関数が返され続け、パラメータは最終的にcloser関数に返されます.
curingの特徴をコードでより詳細に理解しましょう.
カードリング
1-1
関数呼び出し時には、伝達パラメータが各位置に指定され、出力6が出力される.
1-2
1−1と同じであるが,1つの機能が一連の機能となり,これは3つの数の積結果を得るためである.
1,2,3はいずれも1つのプロセスを経て出力される.
1−1では,状況に応じて伝達因子を変更する必要があり,これは面倒である.
1-2の場合は再利用可能で、パラメータを複数回使用できます.
これはカレーです.
なぜcuringの再利用性が良いのかをコードで説明します.
したがって,z変数のみを変更し,残りのx,y変数は複数回宣言する.
再利用可能です.
簡単に言えば、カードリングについての全面的な紹介です.
カーブには複数のパラメータの関数があります
ツールに単一パラメータの関数を置き換える特殊な機能を備えています.
最終的に,単一パラメータの関数として相互連鎖反応を通過する過程
Closer関数の特徴も見られます.
既存の関数の再使用性と可読性を向上させることで、より効率的になります.
適切に運用すれば、高いレベルのコードが作成されます.
形はカレーです.
すべてのパラメータが使用済みになるまで、新しい関数が返され続け、パラメータは最終的にcloser関数に返されます.
curingの特徴をコードでより詳細に理解しましょう.
カードリング
1-1
function multifunc(a, b, c) {
return a * b * c;
}
multifunc(1, 2, 3) // 6
multifunc
関数は、3つの因子によって返された結果を乗算します.関数呼び出し時には、伝達パラメータが各位置に指定され、出力6が出力される.
1-2
function multifunc(a) {
return (b) => {
return (c) => {
return a * b * c
}
}
}
multifunc (1) (2) (3) // 6
今回は複数の関数を分けてCloser関数として変更してみました.1−1と同じであるが,1つの機能が一連の機能となり,これは3つの数の積結果を得るためである.
1,2,3はいずれも1つのプロセスを経て出力される.
1−1では,状況に応じて伝達因子を変更する必要があり,これは面倒である.
1-2の場合は再利用可能で、パラメータを複数回使用できます.
これはカレーです.
なぜcuringの再利用性が良いのかをコードで説明します.
function multifunc(x) {
return function(y) {
return function(z){
return x * y * z;
}
}
}
let multifunc5 = multifunc(5); // 5 고정 x
let multifunc5Add9 = multifunc5(9); // 5와 9 고정 y
let multifunc5Add3 = multifunc5(3); // 5와 3 고정 y
multifunc5Add9(7); // 5(x) * 9(y) * 7(z)
multifunc5Add9(8); // 5(x) * 9(y) * 8(z)
multifunc5Add3(1); // 5(x) * 3(y) * 1(z)
multifunc5Add9
関数が5 9 7を返しても、再び呼び出されると5 9 1とは異なる値が返されます.したがって,z変数のみを変更し,残りのx,y変数は複数回宣言する.
再利用可能です.
簡単に言えば、カードリングについての全面的な紹介です.
カーブには複数のパラメータの関数があります
ツールに単一パラメータの関数を置き換える特殊な機能を備えています.
最終的に,単一パラメータの関数として相互連鎖反応を通過する過程
Closer関数の特徴も見られます.
既存の関数の再使用性と可読性を向上させることで、より効率的になります.
適切に運用すれば、高いレベルのコードが作成されます.
Reference
この問題について(カードリング), 我々は、より多くの情報をここで見つけました https://velog.io/@milkyway/커링-curryingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol