Чисто функциональное программирование
-
Основы чисто функционального программирования
- Чисто функциональное программирование рассматривает вычисления как математические функции.
- Состояние программы моделируется с помощью временных переменных, передаваемых в функции преобразования состояния.
- Функциональные программы должны зависеть только от своих аргументов и не использовать глобальное или локальное состояние.
-
Разница между чистым и нечистым функциональным программированием
- Определение чистоты Сабри: все стратегии оценки должны давать одинаковый результат.
- Функциональные языки могут использовать методы из императивной парадигмы, что делает их «нечистыми».
- Ранние языки программирования, такие как IPL и Lisp, считаются «нечистыми» по определению Сабри.
-
Свойства чисто функционального программирования
- Строгая и нестрогая оценка: все стратегии оценки дают одинаковый результат.
- Параллельные вычисления: программы могут быть распараллелены без проблем с условиями гонки и взаимоблокировками.
- Структуры данных: чисто функциональные структуры данных являются постоянными и могут быть реализованы иначе, чем в императивных языках.
-
Чисто функциональный язык
- Чисто функциональный язык поддерживает только чисто функциональное программирование.
- Чисто функциональные программы могут быть написаны на языках, которые не являются чисто функциональными.
Полный текст статьи: