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 valueThese 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 xFunctions 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 primitive function is constant, which transforms a value x into the constant-valued function x̄. Functions are strict:
f:⊥ = ⊥Another example of a primitive function is the selector function family, denoted by 1,2,... where:
1:〈x1,...,xn〉 = x1 i:〈x1,...,xn〉 = xi if 0 < i ≤ n = ⊥ otherwiseRead more about this topic: FP (programming Language)