Skip to main content

Каррирування

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


Приклад:

Звичайна функція:

javascript
function sum(a, b) { return a + b; } sum(2, 3); // 5

Після каррирування:

javascript
function curriedSum(a) { return function (b) { return a + b; }; } curriedSum(2)(3); // 5

Як це працює:

  • curriedSum(2) повертає нову функцію, яка "пам'ятає" значення a = 2.
  • Потім ця функція очікує другий аргумент b.
  • Коли ми викликаємо її з 3, повертається результат 2 + 3.

Навіщо потрібне каррирування:

  1. Повторне використання частково застосованих функцій
javascript
const add10 = curriedSum(10); add10(5); // 15 add10(7); // 17
  1. Спрощує композицію функцій - зручно у функціональному програмуванні.
  2. Підвищує читабельність і гнучкість коду, особливо в бібліотеках на кшталт Lodash або Ramda.

Коротко:

Каррирування - це перетворення функції f(a, b, c) на f(a)(b)(c), щоб можна було викликати її частинами і повторно використовувати часткові виклики.

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

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

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