| Функциональное программирование - одна из самых важных вещей для любого аспекта языка программирования. Сегодня я поделюсь некоторыми базовыми знаниями по этой теме.

Функциональное программирование. Это все о функциях. Итак, что такое функция? Функции - это просто ввод и вывод.

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

  1. Чистая функция
  2. Состав функций
  3. Общее состояние
  4. Изменяемые данные
  5. Побочный эффект

Давайте поделимся некоторыми основными понятиями о его модных словах.

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

function greetings(name, greet){
     return (greet + ' ' + name);
}
let output = greetings('Bangladesh', 'Hello');
console.log(output); // "Hello, Bangladesh"

Состав функций: это обширная терминология программирования. Композиция функций - это процесс объединения двух или более функций для создания новой функции. Эта концепция программирования в основном используется для математических расчетов.

const add = (a, b) => a + b;
const mult = (a, b) => a * b;
add(2, mult(3, 5))

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

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

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

Функция первого класса. В основном, существует шесть условий для функции первого класса. Если наша функция соответствует кому-либо, она называется функцией первого класса. Давайте рассмотрим несколько примеров для каждого условия.

  1. Функция может быть сохранена в переменной

Вывод:

Hello, Maruf Ahmed

2. Функция может быть сохранена в массиве.

Вывод:

[ 1, 2, 3, [Function: sayName] ]

3. Функцию можно сохранить как поле объекта или свойство.

Вывод:

{
    name: 'Maruf Ahmed',
    sayName: [Function: sayName],
    print: [Function: print]
}

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

Вывод:

Result: 60

5. Мы можем передать функцию в виде договоренностей.

Вывод:

Hello, Maruf Ahmed

6. Мы можем вернуть функцию из другой функции.

Вывод:

Result: 1000

Думаю, после демонстрации этого примера у вас есть четкое понимание первоклассной функции JavaScript.

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

var name = 'Maruf Ahmed';
function sayName() {
   console.log('Hello, ' + name);
}
sayName(); // Output: Hello, Maruf Ahmed

Я думаю, вы работали с этой простой функцией несколько раз, и я уверен, что вы даже не знаете, что это закрытие. Как удивительно! Что ж, позвольте мне объяснить.

Фактически, когда у области есть доступ к внешней (включающей) области или глобальным переменным, это просто называется закрытием. Следуйте примеру, Здесь name - это глобальная область видимости или переменная и функция sayName (). Эта функция открывает фигурные скобки, чтобы закрыть фигурные скобки. В этой области видимость переменной name попадает в глобальную область видимости. Итак, простое право. Но как эта функция является закрытием?

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

Перейдите в VS Code, запустите этот точный код и выполните отладку. После отладки все ваше замешательство исчезло.