Функціональне програмування
Загальні відомості
Функціональне програмування (ФП) — це стиль програмування, який спирається на обчислення виразів, а не на виконання команд. Вирази формуються у вигляді комбінування функцій. Функціональна мова – це мова, яка підтримує та заохочує програмування у функціональному стилі.
Концепції ФП
Функціональне програмування ґрунтується на кількох важливих концепціях:
- незмінні дані
- прозорість посилань
- модульність
- ремонтопридатність
- замыкание
- функції вищого ладу
- чиста функція
- композиція функцій
Незмінні дані
Незмінні дані означають, що ви повинні легко створювати структури даних замість зміни існуючих.
Прозорість посилань
Функціональні програми повинні виконувати операції так само, якби це було вперше. Таким чином, ви знатимете, що могло чи не могло статися під час виконання програми, та її побічні ефекти. У термінах ФП це називається прозорістю посилань.
Модульність
Модульна конструкція збільшує продуктивність. Невеликі модулі можуть бути написані швидко і мають більше шансів повторного використання, що, безумовно, призводить до більш швидкої розробки програм. Крім того, модулі можна тестувати окремо, що допомагає скоротити час, що витрачається на модульне тестування та налагодження.
Ремонтопридатність
Ремонтопридатність - це простий термін, який означає, що програмування FP легше підтримувати, оскільки вам не потрібно турбуватися про випадкову зміну чогось поза даною функцією.
"Першокласна функція" - це визначення, що стосується сутностей мови програмування, які не мають обмежень на їх використання. Тому першокласні функції можуть з'являтися будь-де програми.
Замикання
Замикання – це внутрішня функція, яка може звертатися до змінних батьківських функцій навіть після виконання батьківської функції.