Техники каррирования в JavaScript

Beginner

This tutorial is from open-source community. Access the source code

Введение

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

Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 100%. Он получил 100% положительных отзывов от учащихся.

Каррирование функции

Для каррирования функции следуйте шагам:

  1. Откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода.
  2. Используйте рекурсию.
  3. Проверьте, достаточно ли количества переданных аргументов (args).
  4. Если да, вызовите переданную функцию fn.
  5. Если нет, используйте Function.prototype.bind(), чтобы вернуть каррированную функцию fn, которая ожидает оставшихся аргументов.
  6. Если вы хотите каррировать функцию, которая принимает переменное количество аргументов (вариадическую функцию, например, Math.min()), вы можете необязательно передать количество аргументов второму параметру arity.
  7. Используйте следующий код:
const curry = (fn, arity = fn.length, ...args) =>
  arity <= args.length ? fn(...args) : curry.bind(null, fn, arity, ...args);

Вот несколько примеров:

curry(Math.pow)(2)(10); // 1024
curry(Math.min, 3)(10)(50)(2); // 2

Резюме

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