Автор оригинала: 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" ]
Последнее, но не самое меньшее, не повторяйте, используя или во время/петли -> использовать карту, уменьшить, фильтр и т. Д.
Позвольте мне свои мысли.