Функциональная

by Алонзо Чёрч

Происхождение

Функциональное программирование базируется на работах Алонзо Чёрча, который в 1930-х годах разработал λ-исчисление (лямбда-исчисление) — математическую основу для функционального программирования.

Исторический контекст

Лямбда-исчисление Чёрча стало основой для языков, таких как Lisp (разработан Джоном Маккарти в 1958 году) и более поздних функциональных языков, таких как Haskell и ML.

Функциональная парадигма программирования трактует процесс вычисления как вычисление значений функций в математическом понимании, где функции являются первоклассными объектами. В функциональном программировании акцент делается на декларативный подход, при котором результат определяется посредством вычисления выражений, а не выполнения команд.

Процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании)

Функциональное программирование рассматривает функции как математические объекты, которые принимают аргументы и возвращают результаты. Эти функции не имеют побочных эффектов и всегда возвращают одно и то же значение для одних и тех же входных данных.

Идеально для описания тройками Хоара

Функциональные программы легче формально верифицировать и тестировать, поскольку они не изменяют состояния программы и не зависят от порядка выполнения инструкций. Это делает их идеальными для использования с формальными методами, такими как тройки Хоара, которые позволяют доказать корректность программ.

Поддержка рекурсии и функции высшего порядка

Функциональные языки активно используют рекурсию и функции высшего порядка (функции, принимающие другие функции в качестве аргументов или возвращающие их в качестве результата), что делает их мощным инструментом для решения сложных задач.

Использование неизменяемости и выражений

В функциональном программировании состояние программы не изменяется, а создаются новые значения в результате выполнения выражений. Это упрощает параллелизм и делает код более предсказуемым и безопасным.

Примеры языков

  • Haskell
  • Lisp
  • Erlang
  • Elixir

функциональная парадигма тройки-хоара


Buzzwords
объектная коммуникация акторно-сетевая mindmap финансовый концептуализация домен лингвистика когнитивного-капитала очки проблема социальная-сеть стримы мультимедиа инструменты познание структура вавилон scrum социальное-действие discord позитивизм безопасность майндмап операционализация множественных-миров концепты язык теория umwelt теории деконструкция процедурная психологизм функциональная эпистемология философия тройки-хоара теория-институционализации teamwork разработка теория-потребления факт разрыв концепт медиации-рынка постструктурализм императивная аналитика объект коммуникации-знаний антропология исследование эмпиризм корпоративный семантика e-commerce мессенджеры сетевых-сообществ big-data сервис предмет верификация производство аспектная теория-поля элементы слон смысл геймдев сильных-слабых-связей программирование социального-капитала метафора динамики-социальных-групп проекты умвельт социального-обмена дистрибуция структурный-функционализм сетей-платформ информационный социология маркетплейс априоризм капиталистических-систем синтаксис идеи дисциплинарной-власти теория-структурирования парадигма знание теория-систем автоматизация теория-медиатизации элемент облачный рационализм символического-взаимодействия сложность информационного-общества