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