Open dumperize opened 3 years ago
дроздов в мире программирования про ФП - с нуля, для всех https://www.youtube.com/watch?v=2QAUAZ5qgJM&t=20s
дроздов в мире программирования про ФП - с нуля, для всех https://www.youtube.com/watch?v=2QAUAZ5qgJM&t=20s
вначале подумал про Дроздова с ТГУ))
Как из любой функции на js сделать ее каррированную версию:
function curry (func) {
return function curried (...args) {
if (args.length >= func.length) {
return func.apply(this, args);
}
else {
return function (...args2) {
return curried.apply(this, args.concat(args2));
}
}
}
}
function sum (a, b, c, d, e) {
return a+b+c+d+e;
}
let curriedSum = curry(sum);
// Стандартный запуск функции
console.log(curriedSum(1, 2, 3, 4, 5));
// Полное каррирование функции
console.log( curriedSum(1)(2)(3)(4)(5) );
// Неполное каррирование или частичное применение функции
console.log( curriedSum(1)(2, 3)(4)(5) );
Если хотите знать для чего так вобще делать - не забывайте ходить на тимсы. Илья рассказал на практическом примере.