В этой статье мы собираемся обсудить каррирование в JavaScript. Здесь мы увидим, как работает каррирование и чем оно может быть полезно для разработчиков программного обеспечения.

Что такое карри?

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

Это преобразование функций, переводящее функцию из вызываемой как sum(1, 2, 3) в вызываемую как sum(1)(2)(3).

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

Давайте разберемся на отдельных примерах

Во-первых, я собираюсь создать простую функцию, которая принимает два параметра.

const sum = (a, b) => {
    return a+b
}
console.log(sum(1, 1)) // 2

Здесь произошло то, что эта функция добавляет все параметры чисел, которые мы передали.

Итак, этот первый пример — это просто простая функция, которая принимает несколько параметров.

Преобразуем существующую функцию в каррированную

В этом примере эта функция будет принимать один аргумент и возвращать ряд функций.

const sumCurry = a => {
    return b => {
      return a+b;
    }
}

console.log(sumCurry(1)(1)) // 2

как мы реализовали ту же функцию, но с каррированной версией, которая принимает один аргумент a и возвращает функцию, которая принимает другой аргумент b, и эта функция возвращает их сумму, что дало нам тот же результат, что и в примере: 5.

Также, если вы хотите увеличить количество аргументов, тогда программа каррированной версии будет ниже

const sumCurry = a => {
    return b => {
      return c => {
        return a+b+c;
      };
    }
}

console.log(sumCurry(1)(1)(1)) // 3

Ключевые моменты, которые следует помнить

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

Чтобы лучше понять, вот ссылка на видео