Читайте также: |
|
Функциональное программирование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании). Противопоставляется парадигме императивного программирования, которая описывает процесс вычислений как последовательность изменения состояний (в значении, подобном таковому в теории автоматов). На практике отличие математической функции от понятия «функции» в императивном программировании заключается в том, что императивные функции могут опираться не только на аргументы, но и на состояние внешних по отношению к функции переменных, а также иметь побочные эффекты и менять состояние внешних переменных. В отличие от императивного стиля, описывающего шаги, ведущие к достижению цели, функциональный стиль описывает математические отношения между данными и целью. К преимуществам функционального программирования можно отнести удобство тестирования и более высокую надежность (достаточно независимо протестировать работу каждой функции исходя лишь из параметров и результата, так как функции не порождают побочных эффектов, одинаковые параметры приведут к одному результату). Программу возможно оптимизировать при компиляции, так такой подход к написанию не задает жесткой последовательности действий, и полностью независимые функции могут выполняться параллельно.
Недостатком функционального программирования является постоянное порождение новых данных вместо изменений, требующее постоянного выделения и автоматического освобождения памяти. Поэтому в этом случае необходим высокоэффективный сборщик мусора. Примером чисто функционального языка программирования является Haskell, названный в честь Хаскелла Карри, частично функциональную парадигму использует SQL.
Дата добавления: 2015-08-27; просмотров: 84 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Структурное программирование | | | Событийно-ориентированное программирование |