Functional
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.
- Why Functional Programming Matters, a famous essay explaining how higher-order functions and lazy evaluation can help in creating modular, well-designed programs, including examples.
- LtU's functional programming topic.
- The FAQ for comp.lang.functional
- Claus Reinke's own little FP link
- Real-World uses of functional programming languages.
- The Journal of Functional Programming
- There are fine functional programming groups at Glasgow, St Andrews, Rocquencourt, etc.
- the SEL-HPC Functional Programming Archive
- Purely Functional Data Structures, a great book by Chris Okasaki.
- John Hughes' Collection of tutorials.
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