Парадигма: на уровне функций
Программирование на уровне функций (другое русское название — комбинаторное программирование) предполагает, что программа строится из элементарных функций, комбинируемых при помощи функционалов (функциональных форм).
Эта парадигма не использует понятия переменной или операции присваивания, а вместо этого сосредотачивается на изучении элементарных функций и функциональных форм.
Программирование на уровне функций использует следующую иерархию сущностей в пределах языка программирования:
-
атомы
— единицы данных, с которыми оперируют функции. Данные появляются только на входе и выходе программы, и нигде внутри. Атомы могут быть скалярами или множествами других атомов. -
функции
— инструменты, преобразующие атомы в другие атомы. Язык задает начальный набор функций, а программист может определять новые, используя функциональные формы. Сама программа тоже является функцией. -
функциональные формы
— инструменты, преобразующие функции в другие функции. Язык задает начальный набор функциональных форм, и либо позволяет создание новых форм (FFP), либо нет (FP). Таким образом, язык задает алгебру функциональных форм над пространством функций.
Программирование на уровне функций является противоположностью программирования на уровне значений и разновидностью функционального программирования (с ограничением на то, как создаются новые функции).