Skip to main content
Практика завдань

Що таке каррінг у JavaScript

Каррінг — це техніка перетворення функції з багатьма аргументами у послідовність функцій, кожна з яких приймає один аргумент.


Чому потрібен каррінг?

  • Повторне використання: ви можете зафіксувати деякі аргументи заздалегідь.
  • Чистота функцій: карровані функції легше тестувати та комбінувати.
  • Функціональний стиль: часто використовується у функціональному програмуванні.

Простий приклад

javascript
function sum(a) { return function (b) { return function (c) { return a + b + c; }; }; } console.log(sum(1)(2)(3)); // 6

Тут sum — це каррована функція, вона приймає один аргумент за раз.

Часткове застосування

javascript
function multiply(a) { return function (b) { return a * b; }; } const double = multiply(2); // частково застосована функція console.log(double(5)); // 10

Універсальна функція каррінгу

javascript
function curry(fn) { return function curried(...args) { if (args.length >= fn.length) { return fn(...args); } else { return (...next) => curried(...args, ...next); } }; } function add(a, b, c) { return a + b + c; } const curriedAdd = curry(add); console.log(curriedAdd(1)(2)(3)); // 6 console.log(curriedAdd(1, 2)(3)); // 6

Відмінність від звичайної функції

ХарактеристикаЗвичайна функціяКаррована функція
Викликsum(1, 2, 3)sum(1)(2)(3)
Застосування аргументівУсі одразуОдин за раз
Повторне використанняСкладнішеЛегко зафіксувати деякі аргументи

Коли застосовувати каррінг?

  • Коли потрібно частково застосувати аргументи
  • Коли використовуєте функціональний стиль (наприклад, з map, filter, reduce)
  • Коли складаєте складні функції з простих

Резюме:

Каррінг — це потужна техніка у функціональному програмуванні. Вона допомагає писати більш модульний, читабельний та повторно використовуваний код, особливо в ланцюгах і колбеках.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.

Дочитали статтю?
Практика завдань