Глоссарий

Каррирование (Currying)

Каррирование — техника функционального программирования: преобразование функции с N аргументами в последовательность функций, каждая из которых принимает один аргумент. Позволяет частичное применение и создание специализированных функций.

Идея

// Обычная функция
add(2, 3) → 5

// Каррированная
add(2)(3) → 5

// Частично применённая
addTwo = add(2)
addTwo(3) → 5
addTwo(10) → 12

PHP пример

$multiply = fn($a) => fn($b) => $a * $b;

$double  = $multiply(2);
$triple  = $multiply(3);

echo $double(5);  // 10
echo $triple(5);  // 15

// Пайплайн
$result = array_map($double, [1, 2, 3, 4]);
// [2, 4, 6, 8]

Практическая ценность

Каррирование редко используется в PHP напрямую, но концепция частичного применения полезна для построения пайплайнов, конфигурирования функций и коллбеков. В JavaScript и Haskell — значительно распространённее.