Функциональное программирование

Материал из Поле цифровой дидактики
Версия от 13:12, 21 октября 2022; Patarakin (обсуждение | вклад) (Новая страница: «{{Понятие |Description=Функциона́льное программи́рование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном прог...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)


Описание Функциона́льное программи́рование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
Область знаний Информатика
Авторы
Поясняющее видео
Близкие понятия Лямбда-исчисление, Рекурсия
Среды и средства для освоения понятия Lisp, APL, Scheme, Snap!, Wolfram

В функциональных языках цикл обычно реализуется в виде рекурсии. Строго говоря, в функциональной парадигме программирования нет такого понятия, как цикл. Рекурсивные функции вызывают сами себя, позволяя операции выполняться снова и снова. Для использования рекурсии может потребоваться большой стек, но этого можно избежать в случае хвостовой рекурсии. Хвостовая рекурсия может быть распознана и оптимизирована компилятором в код, получаемый после компиляции аналогичной итерации в императивном языке программирования.

Стандарты языка Scheme требуют распознавать и оптимизировать хвостовую рекурсию. Оптимизировать хвостовую рекурсию можно путём преобразования программы в стиле использования продолжений при её компиляции, как один из способов.