Функциональное программирование: различия между версиями

Материал из Поле цифровой дидактики
(Новая страница: «{{Понятие |Description=Функциона́льное программи́рование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном прог...»)
 
Строка 2: Строка 2:
|Description=Функциона́льное программи́рование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
|Description=Функциона́льное программи́рование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
|Field_of_knowledge=Информатика
|Field_of_knowledge=Информатика
|similar_concepts=Лямбда-исчисление, Рекурсия
|similar_concepts=Лямбда-исчисление, Рекурсия, Хвостовая рекурсия
|Environment=Lisp, APL, Scheme, Snap!, Wolfram
|Environment=Lisp, APL, Scheme, Snap!, Wolfram
}}
}}

Версия 15:54, 12 января 2023


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

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

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