Каррирование превращает функцию двух аргументов в цепочку из двух функций: первая запоминает первое число, вторая принимает второе и возвращает сумму.
Функция сложения, реализованная через каррирование
Каррирование превращает функцию двух аргументов в цепочку из двух функций: первая запоминает первое число, вторая принимает второе и возвращает сумму.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Реализуйте функцию, которая складывает два числа, используя технику каррирования.
Ответ
Каррирование превращает функцию двух аргументов в цепочку из двух функций: первая запоминает первое число, вторая принимает второе и возвращает сумму.
const add = a => b => a + b;
add(2)(3); // 5
const addTen = add(10);
addTen(4); // 14
Значение a сохраняется в замыкании. Каждый вызов add создаёт независимую функцию. Это не бесконечная цепочка и не вызов add(2, 3): контракт требует именно двух последовательных вызовов. Предполагаются числа, иначе оператор + может выполнить конкатенацию.