Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

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

Определение проекта | Выполнение проекта | Завершение проекта | Модель водопада | Итеративная разработка | Спиральная модель | Вычислительные системы | Операционные системы | Выбор языка и среды программирования | Краткий обзор распространенныхпромышленных языков программирования и программных платформ |


Читайте также:
  1. Аспектно-ориентированное программирование
  2. Аспектно-ориентированное программирование
  3. Аспектно-ориентированное программирование
  4. Визуально-ориентированное программирование
  5. Визуально-ориентированное программирование
  6. Визуально-ориентированное программирование
  7. Логическое программирование.

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

Недостатком функционального программирования является постоянное порождение новых данных вместо изменений, требующее постоянного выделения и автоматического освобождения памяти. Поэтому в этом случае необходим высокоэффективный сборщик мусора. Примером чисто функционального языка программирования является Haskell, названный в честь Хаскелла Карри, частично функциональную парадигму использует SQL.

 


Дата добавления: 2015-08-27; просмотров: 84 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Структурное программирование| Событийно-ориентированное программирование

mybiblioteka.su - 2015-2024 год. (0.006 сек.)