functional programming

from The Free On-line Dictionary of Computing (8 July 2008)
functional programming

   <programming> (FP) A program in a functional language consists
   of a set of (possibly {recursive}) {function} definitions and
   an expression whose value is output as the program's result.
   Functional languages are one kind of {declarative language}.
   They are mostly based on the {typed lambda-calculus} with
   constants.  There are no {side-effects} to expression
   evaluation so an expression, e.g. a function applied to
   certain arguments, will always evaluate to the same value (if
   its evaluation terminates).  Furthermore, an expression can
   always be replaced by its value without changing the overall
   result ({referential transparency}).

   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
   (ftp://ftp.cs.olemiss.edu/pub/tech-reports/umcis-1995-01.ps).
   or the same in dvi-format
   (ftp://ftp.cs.olemiss.edu/pub/tech-reports/umcis-1995-01.dvi).

   FAQ
   (http://cs.nott.ac.uk/Department/Staff/gmh/faq.html).

   SEL-HPC Article Archive
   (http://lpac.ac.uk/SEL-HPC/Articles/).

   (2003-03-25)
    

[email protected]