Lambda calculus was developed by Alonzo Church in the 1930s and published in 1941 as The Calculi Of Lambda Conversion. It became important, along with Turing machines, in the development of computation theory, and is the theoretical basis of all functional programming languages, such as Lisp, Haskell, and ML.
Functions in lambda calculus are very different from those in imperative programming languages (such as Java and C). In an imperative programming language the evaluation of a function can have side effects, affecting future evaluations of that function or other functions. In lambda calculus a function does not return a result based on its parameters — instead the function and its parameters are reduced to give an answer, which mathematically is equivalent to the question.