functional programming
The order of evaluation of subexpressions is determined by the language's evaluation strategy. In a strict (call-by-value) language this will specify that arguments are evaluated before applying a function whereas in a non-strict (call-by-name) language arguments are passed unevaluated.
Programs written in a functional language are generally compact and elegant, but have tended, until recently, to run slowly and require a lot of memory.
Examples of purely functional languages are Clean, FP, Haskell, Hope, Joy, LML, Miranda, and SML. Many other languages such as Lisp have a subset which is purely functional but also contain non-functional constructs.
See also lazy evaluation, reduction.
Lecture notes. or the same in dvi-format.
FAQ.
(2003-03-25)

