LYCOS RETRIEVER Beta Retriever Home  |  What is Lycos Retriever?   
Lambda Calculus: Functions
built 634 days ago
In mathematical logic and computer science, lambda calculus... λ-calculus, is a formal system. It was designed to investigate the definition of functions, and how to apply them. It is also a tool for analysing recursion. It was introduced by Alonzo Church and Stephen Cole Kleene in the 1930s. Church used lambda calculus in 1936 to give a negative answer to the Entscheidungsproblem. Lambda calculus can be used to define what a computable function is. No general algorithm can answer the question, if two lambda calculus expressions are equivalent.
This experiment shows that the language machine can operate directly as an evaluator for the lambda calculus. This is of course an academic exercise. As can be seen in the discussion below on the representation of data, the language machine has its own way of doing things. But it does show how the language machine relates to the lambda calculus and to functional languages in general, and that it is in effect a machine for computation and grammar. In particular it shows that rules which implement functional evaluation are a subset of the rules that can usefully be applied by the language machine.
In lambda calculus, every expression is a unary function, that is, a function with only one input (called an argument). When it is applied to another expression (that is, called with the expression as its argument), it returns a single value, called its result. Further, since again every expression is a unary function, every argument and every result is ... a function (indeed, a unary function just like this one), making lambda calculus quite interesting and unique within both computation and mathematics. A function is anonymously defined by a lambda expression which expresses the function's action on its argument. For instance, the "add-two" function f such that
An interesting note about the origins of the use of the Greek letter lambda in the Lambda Calculus. Alfred North Whitehead and Bertrand Russell in their magnum opus Principia Mathematica originally used the notation t(^x) (the hat ^ should be over the x, but I have no idea how to do this in HTML) for a function of x yielding t(x). Alonzo Church later modified this to ^x.t(x), but because the typesetter for his papers couldn't place the hat on top of his x, it looked like Λx.t(x). Eventually, yet another typesetter mutated this to λx.t(x), which was the notation that eventually stuck and gave its name to the entire formalism.
Source:
The lambda calculus operates primarily by substitution. As all functions in the classical representation of the lambda calculus take just one argument, the element of recognition in applying a function has not been much noticed. However recognition does arise in the very closely related functional languages, where different cases of a function may be selected by matching argument values. But in functional languages such as ML and Haskell there is no question that the recognition phase of one function can be nested within the recognition phase of another.
-Calculus (pronounced `lambda calculus') is a model of computation invented by Alonzo Church in 1934. It's analogous to Turing machines, but it's both simpler and more practical. Where the Turing machine is something like a model of assembly language, the -calculus is a model of function application. Like Turing machines, it defines a simplified programming language that you can write real programs in. Writing Turing machine programs is like writing in assembly language, but writing -calculus programs is more like writing in a higher-level language, because it has functions.
Source:
SEARCH
MORE ABOUT