The term for a paradigm of programming that originates in the early works about lambda calculus: computations consist in evaluating/expanding structured expressions, rather than executing instructions, as with imperative programming.

Because functional programming has such simple semantics, it makes proving correctness of programs, to manipulate programs, to parallelize them, etc., relatively easy.

Functional perspectives work when there is a logical perspective that permits encapsulating side effects as results within some context or system; consequently the benefits described here are not trivial to achieve.

Pages in this topic: Aleph   ALF   Alice   Amiga E   Better Scheme   Bla   Category Theory   Cayenne   Charity   Claire   Clarity   Clean   Confluence   Coq   Curry   DML   Eden   Epigram   Erlang   Escher   Felix   FISh   Forth   FreshML   Functional and Object-Oriented   Haskell   Hobbit   Hume   JoCaml   Joy   Lemon   LIFE   Lisp   MetaML   ML   Needle   NESL   NIAL   O'Haskell   OCAML   Opal   Pike   Q   Qi   RELFUN   SAC   Scala   Scheme   Sisal   TXL  

Also linked from: C++   Combinator   Concatenative Syntax   Continuation   Continuation-Passing Style   Declarative   Dispatch   Elegant   Eugenio Moggi   Fortran   fxm   Lambda Prolog   Lambda VM   Linear Logic Comments   Microkernel Debate   Monad   PL 101   Python   Referential Transparency and State   SECD   Simon Peyton Jones