Каррирование — это мощный метод функционального программирования, позволяющий преобразовать функцию, принимающую несколько аргументов, в последовательность функций, каждая из которых принимает один аргумент. В этой статье мы рассмотрим различные методы вычисления суммы с использованием каррирования и приведем примеры кода на JavaScript и Python.
Метод 1: использование JavaScript
function curriedSum(a) {
return function(b) {
if (b) {
return curriedSum(a + b);
}
return a;
};
}
console.log(curriedSum(2)(3)(4)()); // Output: 9
Метод 2: использование Python
def curried_sum(a):
def inner(b):
if b:
return curried_sum(a + b)
return a
return inner
print(curried_sum(2)(3)(4)()) # Output: 9
Метод 3. Использование стрелочных функций в JavaScript (ES6)
const curriedSum = a => b => b ? curriedSum(a + b) : a;
console.log(curriedSum(2)(3)(4)()); // Output: 9
Метод 4. Использование functools.partial в Python
from functools import partial
def sum(a, b):
return a + b
curried_sum = partial(partial(partial(sum, 2), 3), 4)
print(curried_sum()) # Output: 9
Карринг предлагает гибкий и элегантный способ выполнения вычислений, например вычисления сумм, в функциональном программировании. Мы исследовали различные методы реализации каррирования как в JavaScript, так и в Python, продемонстрировав, как каждый подход позволяет нам создавать функции суммирования с каррированием. Используя каррирование, разработчики могут писать чистый и многократно используемый код, обеспечивающий модульность и возможность компоновки.