FP (short for
Function
Programming) is a
programming language created by
John Backus to support the
function-level programming paradigm. This allows eliminating named variables.
Overview
The
values that FP programs map into one another comprise a
set which is
closed under
sequence formation:
if '''x'''<sub>1</sub>,...,'''x'''<sub>n</sub> are '''values''', then the '''sequence''' 〈'''x'''<sub>1</sub>,...,'''x'''<sub>n</sub>〉 is also a '''value'''
These values can be built from any set of atoms: booleans, integers, reals, characters, etc.:
'''boolean''' :
'''integer''' :
'''character''' :
'''symbol''' :
⊥ is the
undefined value, or
bottom. Sequences are
bottom-preserving:
〈'''x'''<sub>1</sub>,...,'''⊥''',...,'''x'''<sub>n</sub>〉 = '''⊥'''
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 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,.........
Read More