Рубрики
Без рубрики

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

Введение в функциональные программирования чистых функций | Функция высшего порядка | Неизменный код

Автор оригинала: Sayuri Kamble.

Чистые функции, функция высшего порядка, неизменный код

В функциональной программировании мы хотим выразить всю нашу программу с точки зрения функций. Функциональное программирование является декларативным. Что означает, что мы сосредотачиваемся больше на ** Что делать ** вместо Как сделать

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

  • Написать Re-Useabled код.
  • Отладьте легко.
  • Читать лучше.

Функции 1-го класса граждан, потому что функции могут быть:

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

Давайте направимся в это.

Не функциональный способ

let name = "Sayuri" ;
let message = "Hey, fellow devs, I am " ;
console.log(message + name)

---> Hey, fellow devs, I am Sayuri

Функциональный способ

function message(name) {
    return "Hey, fellow devs, I am " + name ;
}

message("Sayuri")

---> Hey, fellow devs, I am Sayuri

-> Чистые функции

Чистая функция – это функция, учитывая тот же вход, всегда будет возвращать тот же выход.

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

  • Принимает как минимум 1 параметр.
  • Вернуть что-то (значение или функция).
  • Не мутирует какие-либо аргументы.

Не чисто

let name = "Sayuri" ;

function message(){
    console.log("Hey, fellow devs, I am " + name )
} 

Вышеуказанный код не чистый, потому что

  • -> Это не берет Имя как параметр.
  • -> Это имеет дело с чем-то в глобальном масштабе.
  • -> Также это не имеет Возвращение значение.

Чистые функции не имеют побочные эффекты Это означает, что он не может изменить ничего вне функции.

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

function message(name) {
   return "Hey, fellow devs, I am " + name
}

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

Функция более высокого порядка – это функция, которая принимает функцию в качестве аргумента или возвращает функцию или делает оба.

const greet = function takeName (name){
    return function message(msg){
        return msg  + name 
    }
}

greet("Sayuri ")("Hey, fellow devs, I am ")

--> Hey, fellow devs, I am Sayuri

Неизменный код

Средства неизменности не могут быть изменены.

Мутация -> (плохо)

const code= [ "Javascript", "Python", "React" ]
code[ 1 ] = "Node"
console.log(code)

--> [ "Javascript", "Node", "React" ]

Недвижимость

const code = [ "Javascript", "Python", "React" ]
const code2 = code.map(lang=> {
  if(lang=== 'Python') {
    lang= 'Node';
  }
  return lang;
});

console.log(code2)

--> [ "Javascript", "Node", "React" ]

Последнее, но не самое меньшее, не повторяйте, используя или во время/петли -> использовать карту, уменьшить, фильтр и т. Д.

Позвольте мне свои мысли.