|
FP (short for Function Programming) is a programming language created by John Backus to support the Function-level programming paradigm. Overview
The values that FP programs map into one another comprise a set which is closed under sequence formation: if x1,...,xn are values, then the sequence 〈x1,...,xn〉 is also a value These values can be built from any set of atoms: booleans, integers, reals, characters, etc.: boolean : {T, F} integer : {0,1,2,...,∞} character : {'a','b','c',...} symbol : {x,y,...} ⊥ is the undefined value, or bottom. Sequences are bottom-preserving: 〈x1,...,⊥,...,xn〉 = ⊥ FP programs are functions f that each map a single value x into another: f:x represents the value that results from applying the function f to the value x Functions are either primitive (i.e., provided with the FP environment) or are built from the primitives by program-forming operations (also called functionals). An example of one such operation is constant, which transforms a value x into the constant-valued function x̄. Functions are strict: f:⊥ = ⊥ Some functions have a unit value, such as 0 for addition and 1 for multiplication. The functional unit produces such a value when applied to a function f that has one: unit + = 0 unit × = 1 unit foo = ⊥ Functionals These are the core functionals of FP: constant x̄ where x̄:y = x composition f |