Давайте смотреть правде в глаза!!! Если мне придется говорить о функциональном программировании, мне нужно начать с его определения.

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

В функциональном программировании есть три термина

  1. Чистая функция
  2. Функция первого класса
  3. Функция высшего порядка

#Чистая функция:

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

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

# Функция первого класса:

  • Эта функция может быть сохранена в переменной
  • Его можно хранить в массиве
  • Это функция может быть сохранена в объекте
  • Любой может создать функцию как потребность
  • Мы можем передать функцию в качестве аргумента
  • Может быть возвращена функция из другой функции

Ниже мы увидим пример кода функции первого класса.

Это показывает, что функция может быть сохранена в переменной

Это показывает, что функция может быть сохранена в массиве

Это показывает, что функция может быть сохранена в объекте

Мы можем создать функцию по мере необходимости

# Функция высшего порядка:

  • Когда мы можем вернуть функцию из другой функции
  • Мы можем отправить функцию в качестве аргумента в другую функцию

Пример приведен ниже:

Это показывает, что мы можем передать функцию в качестве аргумента в другую функцию

Это была сложная часть, для понимания которой может потребоваться время. Поэтому я пытаюсь описать это больше здесь!!

Смотрите, когда мы объявили переменную с именем умножить, она вызвала функцию с именем манипулирование, и она приняла три аргумента, и они равны 5,6, добавьте, что является функцией. Поэтому, когда он выполнился, он дал значение a=11 & b=-1. Затем он выполнил функцию умножения и вызвал функцию добавления. Там он дал значение m равно 11. SO, когда оно вернулось как значение как a*b*m=11*(-1)*11=-121.

Итак, это сложная часть, для понимания которой вам потребуется некоторое время.

Необязательный код функции высшего порядка

Это тот же код, что и предыдущий. Это пример кода, который мы можем использовать лучше.

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

Спасибо за чтение

Вторую часть вы можете прочитать по ссылке: https://medium.com/@sunny.barua/functional-programming-in-javascript-part-2-1cef26083aae