Lambda calculus

Computer/Terms 2008. 3. 25. 10:47

In mathematical logic and computer science, lambda calculus, also λ-calculus, is a formal system designed to investigate function definition, function application and recursion. It was introduced by Alonzo Church and Stephen Cole Kleene in the 1930s as part of a larger effort to base the foundation of mathematics upon functions rather than sets (in the hopes of avoiding obstacles like Russell's Paradox). The Kleene-Rosser paradox shows that the lambda calculus is unable to avoid set-theoretic paradoxes, but the lambda calculus emerged as a useful tool in the investigation of problems in computability or recursion theory, and forms the basis of a paradigm of computer programming called functional programming. [1]

The lambda calculus can be thought of as an idealized, minimalistic programming language. It is a close cousin of the Turing machine, another minimalist abstraction capable of expressing any algorithm. The difference between the two is that the lambda calculus takes a functional view of algorithms, while the original Turing machine takes an imperative view. That is, a Turing machine maintains 'state' - a 'notebook' of symbols that can change from one instruction to the next. The imperative paradigm can be seen in programming languages like C or BASIC. By contrast, the lambda calculus is stateless, it deals exclusively with functions which accept and return data (including other functions), but produce no side effects in 'state' and do not make alterations to incoming data (immutability.) The functional paradigm can be seen in modern languages like Lisp, Scheme and Haskell.

Church used the lambda calculus to give a negative answer to the Entscheidungsproblem and to the halting problem. The lambda calculus - and the paradigm of functional programming - is still influential, especially among the artificial intelligence community.

This article deals with the "untyped lambda calculus" as originally conceived by Church. Since then, some typed lambda calculi have been developed.

Reference:
http://en.wikipedia.org/wiki/Lambda_calculus

Posted by 알 수 없는 사용자
,