architect-handbook

Software Architect Handbook

View on GitHub

Functional Programming

Functional programming imposes discipline upon assignment.

Functional programming was the first paradigm to be invented, but has only recenlty begun to be adopted. Indeed, its invention predates computer programming itself.

It is the direct result of the work of Alonzo Church, who in 1936 invented Pi-Calculus while pursuing the same mathematical problem that was motiving Alan Turing at the same time. His Pi-Calculus was the foundation of the LISP language, invented in 1958 by John McCarthy.

A foundational notion of Pi-Calculus is immutability, that is, the notion that the values of symbols do not change. This effectively means that a functional language has no assignment statement (most functional languages do, in fact, have some means to alter the value of a variable, but only under very strict discipline).