Всякий раз, когда идет дискуссия о том, какая парадигма программирования лучше, а вы стоите как…

Итак, давайте попробуем изменить это ....

  1. Что вообще такое функциональное программирование?

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

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

2.Почему функциональное программирование?

Функциональное программирование возникло потому, что по мере роста масштаба приложения поддержка кода становится довольно утомительной.

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

О преимуществах функционального программирования можно прочитать здесь.

3.Как заниматься функциональным программированием?

  • Чистые функции
  • Функции высшего порядка
  • Не повторяйте использование for или while use map, filter, reduce.
  • использовать неизменяемые переменные

Делайте все с помощью функций:

Допустим, вы хотите напечатать утверждение: «XYZ — мой любимый игрок в крикет», где XYZ будет содержать имя любимого игрока в крикет пользователя.

//Imperative style in javascript
let name = "M.S.Dhoni";
let statement = "is my favorite cricketer";
console.log(name+" "+statement);
//Using functions in js
let myFavoritePlayer = function(name){  return `${name} is my favorite player` ;}
console.log(myFavoritePlayer("M.S.Dhoni"));

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

Но в случае с функцией вы можете повторно использовать всю функцию для вывода каждый раз разных результатов.

Чистые функции:

функция возвращаемые значения одинаковы для одинаковых аргументов

функция приложение не имеет побочных эффектов

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

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

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

функция высшего порядка — это функция, которая выполняет хотя бы одно из следующих действий:

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

3. Отфильтровать карту и уменьшить:

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

предположим, вы хотите перемножить все числа в массиве.

const numbers = [65, 44, 12, 4];
const newArr = numbers.map(myFunction)

function myFunction(num) {
  return num * 10;
}

здесь вам не нужно использовать цикл for, и это упрощает жизнь всем. вы можете найти карту, ​​фильтр и уменьшить в ссылках.

4.Используйте неизменяемость:

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

Но почему нет?

Потому что становится очень сложно отслеживать изменения в переменных, а отладка кода становится намного сложнее.

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

Для эффективной неизменности мы можем использовать Постоянные структуры данных.

Функциональное программирование довольно обширно и требует изучения гораздо большего. Так что этот пост — только начало понимания парадигмы.