Что даёт функциональное программирование
- Переменные обозначают конкретные объекты (из области значения).
- Более ясная семантика, программы больше соответствуют математическим
объектам или объектам реального мира.
- Прозрачность по ссылкам: каждое выражение определяет единственную величину,
возможно ссылаться на него (на такое же выражение) из разных частей
программы - оно даёт тот же результат.
- Функции высшего порядка.
- Рекурсивные (самоссылающиеся) определения
функций - аналог циклов.
- Простой синтаксис — легче формально проверить
корректность, выполнить преобразование и оптимизацию.
Императивные языки ближе к железу
они позволяют
компилировать в более эффективный машинный код.
Функциональные языки — большая выразительность и элегантность.
Предлагают понятия, более естественные и близкие людям.