const func1 = (x, y) => x * y * 3
- это стандартная функция стрелки , которая переводит на это:
const func1 = function (x,y) {
return x * y * 3;
}
Принимая во внимание,
const func2 = x => y => x * y * 3
- это функция карри , где у вас есть функция в другой функции, подобной этой:
const func2 = function (x) {
return function (y) {
return x * y * 3;
}
И да, как указано ниже в CRice, вы должны вызывать параметры отдельно с помощью func2
следующим образом:
console.log(func2(a)(b));
В отличие от стандарта:
console.log(func1(a,b));
Карринг полезен как в практических, так и в теоретических условиях. В
функциональные языки программирования и многие другие, он обеспечивает способ
автоматического управления передачей аргументов функциям и
исключения. В теоретической информатике это обеспечивает способ
изучать функции с несколькими аргументами в более простых теоретических моделях
которые предоставляют только один аргумент.
То есть func2
- это функция, которая может использоваться в ситуациях, когда, например, вам необходимо вернуть сообщение «abc», если соблюдены определенные требования, или запустить новую функцию с другой логикой, если начальные требования не выполнены. ,
Цитируемый раздел через - Википедия | Карринг