Каррирование в JavaScript - это процесс преобразования функции с несколькими аргументами в последовательность функций с одним аргументом. Каждая последующая функция принимает один аргумент и возвращает новую функцию, которая также принимает один аргумент, и так далее.
Пример использования каррирования в JavaScript:
// Исходная функция, принимающая 3 аргумента
function sum(a, b, c) {
return a + b + c;
}
// Функция для каррирования
function curry(fn) {
return function curried(...args) {
if (args.length >= fn.length) {
return fn(...args);
} else {
return function (...args2) {
return curried(...args.concat(args2));
};
}
};
}
const curriedSum = curry(sum);
console.log(curriedSum(1, 2, 3)); // Вывод: 6
const add5 = curriedSum(5);
console.log(add5(2, 3)); // Вывод: 10
console.log(add5(4, 5)); // Вывод: 14
В приведенном выше примере функция
sum каррируется с использованием функции curry. В итоге получается функция curriedSum, которая принимает аргументы по одному. Когда все аргументы собраны, она вызывает исходную функцию sum.Каррирование может быть полезным при разработке функций, которые требуют частичного применения аргументов или при создании более универсальных функций, которые могут быть использованы для создания других функций с фиксированными аргументами.
С помощью карирования вы можете легко изменять и композировать функции для создания новых функций с требуемым поведением.
#js | #теория
