Глосарій

Каррінг (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

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

Практична цінність

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