Введение
Язык программирования FP (сокращение от функционального программирования) в конечном итоге привел к появлению современных функциональных языков, которые в значительной степени основаны на парадигме лямбда-исчисления, а не на парадигме уровня функций, на которую надеялся Бэкус. В своей работе, удостоенной премии Тьюринга, Бэкус описал, чем стиль FP отличается:
FP (short for functional programming) eventually leading to modern functional languages, which are largely founded on the lambda calculus paradigm, and not the function level paradigm Backus had hoped. In his Turing award paper, Backus described how the FP style is different:
blockquote|An FP system is based on the use of a fixed set of combining forms called functional forms. These, plus simple definitions, are the only means of building new functions from existing ones; they use no variables or substitutions rules, and they become the operations of an associated algebra of programs. All the functions of an FP system are of one type: they map objects onto objects and always take a single argument. In the 1980s Backus created a successor language, FL as an internal project at IBM Research.
> Система FP основана на использовании фиксированного набора комбинирующих форм, называемых функциональными формами. Эти формы, вместе с простыми определениями, – единственный способ построения новых функций из существующих; они не используют переменных или правил подстановки и становятся операциями связанной алгебры программ. Все функции в системе FP имеют один тип: они отображают объекты на объекты и всегда принимают один аргумент. В 1980-х годах Бэкус создал язык-преемник FL в качестве внутреннего проекта в IBM Research.
FP (short for functional programming) eventually leading to modern functional languages, which are largely founded on the lambda calculus paradigm, and not the function level paradigm Backus had hoped. In his Turing award paper, Backus described how the FP style is different:
blockquote|An FP system is based on the use of a fixed set of combining forms called functional forms. These, plus simple definitions, are the only means of building new functions from existing ones; they use no variables or substitutions rules, and they become the operations of an associated algebra of programs. All the functions of an FP system are of one type: they map objects onto objects and always take a single argument. In the 1980s Backus created a successor language, FL as an internal project at IBM Research.
ФП84
FP84 — это расширение FP, включающее бесконечные последовательности, определяемые программистом объединяющие формы (аналогичные тем, которые сам Бэкус добавил в FL, его преемник FP), и ленивые вычисления. В отличие от FFP, еще одной вариации FP, разработанной Бэкусом, FP84 проводит четкое различие между объектами и функциями: то есть, функции больше не представляются как последовательности объектов. Расширения FP84 достигаются за счет снятия ограничения FP, согласно которому построение последовательности применимо только к объектам, отличным от ⊥. В FP84 вся вселенная выражений (включая выражения со значением ⊥) замкнута относительно построения последовательностей. Семантика FP84 выражена в базовой алгебре программ, представляющей собой набор равенств на уровне функций, которые можно использовать для манипулирования и рассуждений о программах.