Давайте смотреть правде в глаза!!! Если мне придется говорить о функциональном программировании, мне нужно начать с его определения.
Функциональное программирование — это парадигма или стиль, в котором ценятся неизменность, первоклассные функции, ссылочная прозрачность и чистые функции. Он рассматривает вычисления как оценку математических функций и избегает изменения состояния и изменяемых данных.
В функциональном программировании есть три термина
- Чистая функция
- Функция первого класса
- Функция высшего порядка
#Чистая функция:
- Это функция, которая возвращает тот же результат, если мы даем одинаковые аргументы. Если мы вызовем функцию тысячу раз, она даст тот же результат.
- Он не вызывает каких-либо наблюдаемых побочных эффектов.
Если мы выполним квадратную функцию тысячу раз с одним и тем же аргументом, она даст тот же результат. И другие интересные факты о том, что код функции не меняет свою внешнюю функцию.
# Функция первого класса:
- Эта функция может быть сохранена в переменной
- Его можно хранить в массиве
- Это функция может быть сохранена в объекте
- Любой может создать функцию как потребность
- Мы можем передать функцию в качестве аргумента
- Может быть возвращена функция из другой функции
Ниже мы увидим пример кода функции первого класса.
Это показывает, что функция может быть сохранена в переменной
Это показывает, что функция может быть сохранена в массиве
Это показывает, что функция может быть сохранена в объекте
Мы можем создать функцию по мере необходимости
# Функция высшего порядка:
- Когда мы можем вернуть функцию из другой функции
- Мы можем отправить функцию в качестве аргумента в другую функцию
Пример приведен ниже:
Это показывает, что мы можем передать функцию в качестве аргумента в другую функцию
Это была сложная часть, для понимания которой может потребоваться время. Поэтому я пытаюсь описать это больше здесь!!
Смотрите, когда мы объявили переменную с именем умножить, она вызвала функцию с именем манипулирование, и она приняла три аргумента, и они равны 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