4.3 KiB
title | localeTitle |
---|---|
Functional Programming | Функциональное программирование |
Функциональное программирование
Функциональное программирование - это процесс создания программного обеспечения путем создания чистых функций , избежания общего состояния , изменяемых данных и побочных эффектов . Функциональное программирование является декларативным (говорит компьютеру, что вы хотите сделать), а не обязательным (говоря компьютеру точно, как это сделать), а состояние приложения протекает через чистые функции. Контрастируйте его с объектно-ориентированным программированием, где состояние приложения обычно используется совместно и совместно с методами в объектах.
Почему функциональное программирование?
- Это, как правило, более кратким
- Это обычно более предсказуемо
- Это легче проверить, чем объектно-ориентированный код
Принятие на языках программирования
Многие языки программирования поддерживают функциональное программирование, такое как Haskell, F #, Common Lisp, Clojure, Erlang, OCaml. JavaScript также обладает свойствами нетипизированного функционального языка.
Пользы
Функциональное программирование давно популярно в академических кругах, но с небольшим количеством промышленных приложений. Однако недавно в коммерческих или промышленных системах использовалось несколько известных языков функционального программирования. Например, язык программирования Erlang, разработанный шведской компанией Ericsson в конце 1980-х годов, используется для создания целого ряда приложений в таких компаниях, как T-Mobile, Nortel, Facebook, Électricité de France и WhatsApp.
Функции более высокого порядка
Функции более высокого порядка - большая часть функционального программирования. Функция более высокого порядка - это функция, которая либо принимает функцию (s) в качестве параметра, либо возвращает функцию.
карта
map
- это функция более высокого порядка, которая вызывает функцию для каждого элемента списка и возвращает результаты в виде нового списка.
Вот пример map
:
const myList = [6, 3, 5, 29];
let squares = myList.map(num => num * num); // [36, 9, 25, 841]