Аппликативный компьютинг

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Аппликативный компьютинг предполагает комбинационное построение вычисления как относительно самостоятельного блока, пользуясь уже имеющимися блоками вычислений, причем все переменные в каждом блоке вычисления связаны, а сам он — замкнут. Для осуществления аппликативного компьютинга применяют аппликативные вычислительные системы (АВС), в состав которых включают системы исчислений объектов, основанные на комбинаторной логике и лямбда-исчислении. Единственное, что существенно разрабатывается в этих системах — это представление об объекте. В комбинаторной логике единственный метаоператор — аппликация, или, по иной терминологии, приложение одного объекта к другому[1]. В λ-исчислении два метаоператора — аппликация и функциональная абстракция, позволяющая связывать одну переменную в одном объекте.

Теория категорий[править]

С точки зрения теории категорий, аппликация является частным случаем композиции стрелок: если в категории существует терминальный объект Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle 1} , то стрелки вида Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle 1 \to A} будут значениями типа Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle A} , а композиция стрелок Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle v: 1 \to A} и Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle f: A \to B} — аппликацией Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle f} к Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle v} .

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

См. также[править]

Источники[править]

  1. Sabry A. What is a Purely Functional Language?. — Journal of Functional Programming, 1998, Vol. 8, No 1, pp. 1-22