JavaScript·100 вопросов

Что такое currying?

Ответ

Каррирование в JavaScript представляет собой процесс преобразования функции с несколькими аргументами, принимающей вид f(a, b, c), в цепочку функций, каждая из которых принимает ровно по одному аргументу. В результате получается конструкция вида f(a)(b)(c).

Этот мощный подход активно применяется в функциональном программировании для создания более гибкого и переиспользуемого кода. Кроме того, он незаменим для реализации частичного применения аргументов, когда часть параметров фиксируется заранее, а оставшиеся передаются позже.

Классическим примером на современном синтаксисе является стрелочная функция const add = a => b => a + b. В этом случае вызов add(

вернет новую функцию, которая ждет следующий аргумент b, и при вызове add(5)(
вернет итоговый результат сложения.

Такой подход позволяет создавать специализированные функции на основе универсальных шаблонов. Например, функция логирования может быть каррирована так, чтобы сначала принимать уровень важности сообщения, а затем сам текст, что упрощает передачу готовых логгеров в различные модули приложения.

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

Полезен ли этот ответ?

Другие вопросы этой темы

Связанные вопросы из других тем