Get it on Google Play
New! Download Unionpedia on your Android™ device!
Faster access than browser!

Lambda calculus

Index Lambda calculus

Lambda calculus (also written as λ-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. [1]

158 relations: Abstraction (computer science), Alonzo Church, American Journal of Mathematics, Applicative computing systems, Argument, Arithmetic, Automated theorem proving, B, C, K, W system, Beta normal form, Big O notation, Binary combinatory logic, C (programming language), C Sharp (programming language), C++11, Calculus of constructions, Cardinality, Cartesian closed category, Categorical abstract machine, Categorical logic, Category theory, Church encoding, Church–Rosser theorem, Church–Turing thesis, Classical logic, Combinatory logic, Communications of the ACM, Computability, Computable function, Computational complexity theory, Computer science, Confluence (abstract rewriting), Consistency, Curry–Howard correspondence, Currying, Dana Scott, De Bruijn index, Deductive lambda calculus, Denotational semantics, Director string, Distributed computing, Domain theory, Eager evaluation, Eiffel (programming language), Esoteric programming language, Evaluation strategy, Explicit substitution, Exponentiation, Extensionality, Factorial, First-class citizen, ..., First-class function, Formal system, Formalism (philosophy of mathematics), Foundations of mathematics, Free On-line Dictionary of Computing, Free variables and bound variables, Function (mathematics), Function application, Function pointer, Functional programming, Futures and promises, Gödel numbering, Gödel's incompleteness theorems, Graph reduction, Hacker culture, Harrop formula, Haskell (programming language), Henk Barendregt, Higher-order function, If and only if, Imperative programming, Interaction nets, Internet Encyclopedia of Philosophy, J. Barkley Rosser, Java (programming language), JavaScript, Kappa calculus, Kleene–Rosser paradox, Knights of the Lambda Calculus, Krivine machine, Lambda calculus, Lambda calculus definition, Lambda cube, Lambda-mu calculus, Lazy evaluation, Let expression, Library (computing), Linguistics, Lisp (programming language), Low-level programming language, Mathematical logic, Mathematical proof, Mathematics, Minimalism (computing), Miranda (programming language), MIT Press, ML (programming language), Model of computation, Model theory, Name binding, Name collision, Name resolution (programming languages), Natural number, Normalization property (abstract rewriting), North Holland, Object (computer science), Operational definition, Operator associativity, Parallel computing, Partially ordered set, Pascal (programming language), PDF, Peter Landin, Philosophy, Procedural programming, Process calculus, Programming idiom, Programming language, Programming language theory, Proof theory, Pure type system, Recursion, Recursive definition, Reduction strategy (lambda calculus), Rewriting, Richard Montague, Ruy de Queiroz, Scala (programming language), Scheme (programming language), Scope (computer science), Scott continuity, SECD machine, Self-reference, Simply typed lambda calculus, Singleton (mathematics), SKI combinator calculus, Smalltalk, Standard ML, Stephen Cole Kleene, Structure and Interpretation of Computer Programs, Studia Logica, Subroutine, Substitution (algebra), Subtyping, Syntactic sugar, System F, Template (C++), Thierry Coquand, Thunk, Truth value, Turing completeness, Turing machine, Type system, Typed lambda calculus, Universal Turing machine, Unlambda, Variable shadowing, Virtual machine. Expand index (108 more) »

Abstraction (computer science)

In software engineering and computer science, abstraction is.

New!!: Lambda calculus and Abstraction (computer science) · See more »

Alonzo Church

Alonzo Church (June 14, 1903 – August 11, 1995) was an American mathematician and logician who made major contributions to mathematical logic and the foundations of theoretical computer science.

New!!: Lambda calculus and Alonzo Church · See more »

American Journal of Mathematics

The American Journal of Mathematics is a bimonthly mathematics journal published by the Johns Hopkins University Press.

New!!: Lambda calculus and American Journal of Mathematics · See more »

Applicative computing systems

Applicative computing systems, or ACS are the systems of object calculi founded on combinatory logic and lambda calculus.

New!!: Lambda calculus and Applicative computing systems · See more »


In logic and philosophy, an argument is a series of statements typically used to persuade someone of something or to present reasons for accepting a conclusion.

New!!: Lambda calculus and Argument · See more »


Arithmetic (from the Greek ἀριθμός arithmos, "number") is a branch of mathematics that consists of the study of numbers, especially the properties of the traditional operations on them—addition, subtraction, multiplication and division.

New!!: Lambda calculus and Arithmetic · See more »

Automated theorem proving

Automated theorem proving (also known as ATP or automated deduction) is a subfield of automated reasoning and mathematical logic dealing with proving mathematical theorems by computer programs.

New!!: Lambda calculus and Automated theorem proving · See more »

B, C, K, W system

The B, C, K, W system is a variant of combinatory logic that takes as primitive the combinators B, C, K, and W. This system was discovered by Haskell Curry in his doctoral thesis Grundlagen der kombinatorischen Logik, whose results are set out in Curry (1930).

New!!: Lambda calculus and B, C, K, W system · See more »

Beta normal form

In the lambda calculus, a term is in beta normal form if no beta reduction is possible.

New!!: Lambda calculus and Beta normal form · See more »

Big O notation

Big O notation is a mathematical notation that describes the limiting behaviour of a function when the argument tends towards a particular value or infinity.

New!!: Lambda calculus and Big O notation · See more »

Binary combinatory logic

Binary combinatory logic (BCL) is a formulation of combinatory logic using only the symbols 0 and 1.

New!!: Lambda calculus and Binary combinatory logic · See more »

C (programming language)

C (as in the letter ''c'') is a general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations.

New!!: Lambda calculus and C (programming language) · See more »

C Sharp (programming language)

C# (/si: ʃɑːrp/) is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.

New!!: Lambda calculus and C Sharp (programming language) · See more »


C++11 is a version of the standard for the programming language C++.

New!!: Lambda calculus and C++11 · See more »

Calculus of constructions

In mathematical logic and computer science, the calculus of constructions (CoC) is a type theory created by Thierry Coquand.

New!!: Lambda calculus and Calculus of constructions · See more »


In mathematics, the cardinality of a set is a measure of the "number of elements of the set".

New!!: Lambda calculus and Cardinality · See more »

Cartesian closed category

In category theory, a category is considered Cartesian closed if, roughly speaking, any morphism defined on a product of two objects can be naturally identified with a morphism defined on one of the factors.

New!!: Lambda calculus and Cartesian closed category · See more »

Categorical abstract machine

The categorical abstract machine (CAM) is a model of computation for programs that preserves the abilities of applicative, functional, or compositional style.

New!!: Lambda calculus and Categorical abstract machine · See more »

Categorical logic

Categorical logic is the branch of mathematics in which tools and concepts from category theory are applied to the study of mathematical logic.

New!!: Lambda calculus and Categorical logic · See more »

Category theory

Category theory formalizes mathematical structure and its concepts in terms of a labeled directed graph called a category, whose nodes are called objects, and whose labelled directed edges are called arrows (or morphisms).

New!!: Lambda calculus and Category theory · See more »

Church encoding

In mathematics, Church encoding is a means of representing data and operators in the lambda calculus.

New!!: Lambda calculus and Church encoding · See more »

Church–Rosser theorem

In mathematics and theoretical computer science, the Church–Rosser theorem states that, when applying reduction rules to terms in the lambda calculus, the ordering in which the reductions are chosen does not make a difference to the eventual result.

New!!: Lambda calculus and Church–Rosser theorem · See more »

Church–Turing thesis

In computability theory, the Church–Turing thesis (also known as computability thesis, the Turing–Church thesis, the Church–Turing conjecture, Church's thesis, Church's conjecture, and Turing's thesis) is a hypothesis about the nature of computable functions.

New!!: Lambda calculus and Church–Turing thesis · See more »

Classical logic

Classical logic (or standard logic) is an intensively studied and widely used class of formal logics.

New!!: Lambda calculus and Classical logic · See more »

Combinatory logic

Combinatory logic is a notation to eliminate the need for quantified variables in mathematical logic.

New!!: Lambda calculus and Combinatory logic · See more »

Communications of the ACM

Communications of the ACM is the monthly journal of the Association for Computing Machinery (ACM).

New!!: Lambda calculus and Communications of the ACM · See more »


Computability is the ability to solve a problem in an effective manner.

New!!: Lambda calculus and Computability · See more »

Computable function

Computable functions are the basic objects of study in computability theory.

New!!: Lambda calculus and Computable function · See more »

Computational complexity theory

Computational complexity theory is a branch of the theory of computation in theoretical computer science that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other.

New!!: Lambda calculus and Computational complexity theory · See more »

Computer science

Computer science deals with the theoretical foundations of information and computation, together with practical techniques for the implementation and application of these foundations.

New!!: Lambda calculus and Computer science · See more »

Confluence (abstract rewriting)

In computer science, confluence is a property of rewriting systems, describing which terms in such a system can be rewritten in more than one way, to yield the same result.

New!!: Lambda calculus and Confluence (abstract rewriting) · See more »


In classical deductive logic, a consistent theory is one that does not contain a contradiction.

New!!: Lambda calculus and Consistency · See more »

Curry–Howard correspondence

In programming language theory and proof theory, the Curry–Howard correspondence (also known as the Curry–Howard isomorphism or equivalence, or the proofs-as-programs and propositions- or formulae-as-types interpretation) is the direct relationship between computer programs and mathematical proofs.

New!!: Lambda calculus and Curry–Howard correspondence · See more »


In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes multiple arguments (or a tuple of arguments) into evaluating a sequence of functions, each with a single argument.

New!!: Lambda calculus and Currying · See more »

Dana Scott

Dana Stewart Scott (born October 11, 1932) is the emeritus Hillman University Professor of Computer Science, Philosophy, and Mathematical Logic at Carnegie Mellon University; he is now retired and lives in Berkeley, California.

New!!: Lambda calculus and Dana Scott · See more »

De Bruijn index

In mathematical logic, the de Bruijn index is a notation invented by the Dutch mathematician Nicolaas Govert de Bruijn for representing terms in the λ calculus with the purpose of eliminating the names of the variable from the notation.

New!!: Lambda calculus and De Bruijn index · See more »

Deductive lambda calculus

Deductive lambda calculus considers what happens when lambda terms are regarded as mathematical expressions.

New!!: Lambda calculus and Deductive lambda calculus · See more »

Denotational semantics

In computer science, denotational semantics (initially known as mathematical semantics or Scott–Strachey semantics) is an approach of formalizing the meanings of programming languages by constructing mathematical objects (called denotations) that describe the meanings of expressions from the languages.

New!!: Lambda calculus and Denotational semantics · See more »

Director string

In mathematics, in the area of lambda calculus and computation, directors or director strings are a mechanism for keeping track of the free variables in a term.

New!!: Lambda calculus and Director string · See more »

Distributed computing

Distributed computing is a field of computer science that studies distributed systems.

New!!: Lambda calculus and Distributed computing · See more »

Domain theory

Domain theory is a branch of mathematics that studies special kinds of partially ordered sets (posets) commonly called domains.

New!!: Lambda calculus and Domain theory · See more »

Eager evaluation

In computer programming, eager evaluation, also known as strict evaluation or greedy evaluation, is the evaluation strategy used by most traditional programming languages.

New!!: Lambda calculus and Eager evaluation · See more »

Eiffel (programming language)

Eiffel is an object-oriented programming language designed by Bertrand Meyer (an object-orientation proponent and author of Object-Oriented Software Construction) and Eiffel Software.

New!!: Lambda calculus and Eiffel (programming language) · See more »

Esoteric programming language

An esoteric programming language (sometimes shortened to esolang) is a programming language designed to test the boundaries of computer programming language design, as a proof of concept, as software art, as a hacking interface to another language (particularly functional programming or procedural programming languages), or as a joke.

New!!: Lambda calculus and Esoteric programming language · See more »

Evaluation strategy

Evaluation strategies are used by programming languages to determine when to evaluate the argument(s) of a function call (for function, also read: operation, method, or relation) and what kind of value to pass to the function.

New!!: Lambda calculus and Evaluation strategy · See more »

Explicit substitution

In computer science, lambda calculi are said to have explicit substitutions if they pay special attention to the formalization of the process of substitution.

New!!: Lambda calculus and Explicit substitution · See more »


Exponentiation is a mathematical operation, written as, involving two numbers, the base and the exponent.

New!!: Lambda calculus and Exponentiation · See more »


In logic, extensionality, or extensional equality, refers to principles that judge objects to be equal if they have the same external properties.

New!!: Lambda calculus and Extensionality · See more »


In mathematics, the factorial of a non-negative integer n, denoted by n!, is the product of all positive integers less than or equal to n. For example, The value of 0! is 1, according to the convention for an empty product.

New!!: Lambda calculus and Factorial · See more »

First-class citizen

In programming language design, a first-class citizen (also type, object, entity, or value) in a given programming language is an entity which supports all the operations generally available to other entities.

New!!: Lambda calculus and First-class citizen · See more »

First-class function

In computer science, a programming language is said to have first-class functions if it treats functions as first-class citizens.

New!!: Lambda calculus and First-class function · See more »

Formal system

A formal system is the name of a logic system usually defined in the mathematical way.

New!!: Lambda calculus and Formal system · See more »

Formalism (philosophy of mathematics)

In foundations of mathematics, philosophy of mathematics, and philosophy of logic, formalism is a theory that holds that statements of mathematics and logic can be considered to be statements about the consequences of certain string manipulation rules.

New!!: Lambda calculus and Formalism (philosophy of mathematics) · See more »

Foundations of mathematics

Foundations of mathematics is the study of the philosophical and logical and/or algorithmic basis of mathematics, or, in a broader sense, the mathematical investigation of what underlies the philosophical theories concerning the nature of mathematics.

New!!: Lambda calculus and Foundations of mathematics · See more »

Free On-line Dictionary of Computing

The Free On-line Dictionary of Computing (FOLDOC) is an online, searchable, encyclopedic dictionary of computing subjects.

New!!: Lambda calculus and Free On-line Dictionary of Computing · See more »

Free variables and bound variables

In mathematics, and in other disciplines involving formal languages, including mathematical logic and computer science, a free variable is a notation that specifies places in an expression where substitution may take place.

New!!: Lambda calculus and Free variables and bound variables · See more »

Function (mathematics)

In mathematics, a function was originally the idealization of how a varying quantity depends on another quantity.

New!!: Lambda calculus and Function (mathematics) · See more »

Function application

In mathematics, function application is the act of applying a function to an argument from its domain so as to obtain the corresponding value from its range.

New!!: Lambda calculus and Function application · See more »

Function pointer

A function pointer, also called a subroutine pointer or procedure pointer, is a pointer that points to a function.

New!!: Lambda calculus and Function pointer · See more »

Functional programming

In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.

New!!: Lambda calculus and Functional programming · See more »

Futures and promises

In computer science, future, promise, delay, and deferred refer to constructs used for synchronizing program execution in some concurrent programming languages.

New!!: Lambda calculus and Futures and promises · See more »

Gödel numbering

In mathematical logic, a Gödel numbering is a function that assigns to each symbol and well-formed formula of some formal language a unique natural number, called its Gödel number.

New!!: Lambda calculus and Gödel numbering · See more »

Gödel's incompleteness theorems

Gödel's incompleteness theorems are two theorems of mathematical logic that demonstrate the inherent limitations of every formal axiomatic system containing basic arithmetic.

New!!: Lambda calculus and Gödel's incompleteness theorems · See more »

Graph reduction

In computer science, graph reduction implements an efficient version of non-strict evaluation, an evaluation strategy where the arguments to a function are not immediately evaluated.

New!!: Lambda calculus and Graph reduction · See more »

Hacker culture

The hacker culture is a subculture of individuals who enjoy the intellectual challenge of creatively overcoming limitations of software systems to achieve novel and clever outcomes.

New!!: Lambda calculus and Hacker culture · See more »

Harrop formula

In intuitionistic logic, the Harrop formulae, named after Ronald Harrop, are the class of formulae inductively defined as follows.

New!!: Lambda calculus and Harrop formula · See more »

Haskell (programming language)

Haskell is a standardized, general-purpose compiled purely functional programming language, with non-strict semantics and strong static typing.

New!!: Lambda calculus and Haskell (programming language) · See more »

Henk Barendregt

Hendrik Pieter (Henk) Barendregt (born 18 December 1947, Amsterdam) is a Dutch logician, known for his work in lambda calculus and type theory.

New!!: Lambda calculus and Henk Barendregt · See more »

Higher-order function

In mathematics and computer science, a higher-order function (also functional, functional form or functor) is a function that does at least one of the following.

New!!: Lambda calculus and Higher-order function · See more »

If and only if

In logic and related fields such as mathematics and philosophy, if and only if (shortened iff) is a biconditional logical connective between statements.

New!!: Lambda calculus and If and only if · See more »

Imperative programming

In computer science, imperative programming is a programming paradigm that uses statements that change a program's state.

New!!: Lambda calculus and Imperative programming · See more »

Interaction nets

Interaction nets are a graphical model of computation devised by Yves Lafont in 1990 as a generalisation of the proof structures of linear logic.

New!!: Lambda calculus and Interaction nets · See more »

Internet Encyclopedia of Philosophy

The Internet Encyclopedia of Philosophy (IEP) is a scholarly online encyclopedia, dealing with philosophy, philosophical topics, and philosophers.

New!!: Lambda calculus and Internet Encyclopedia of Philosophy · See more »

J. Barkley Rosser

John Barkley Rosser Sr. (December 6, 1907 – September 5, 1989) was an American logician, a student of Alonzo Church, and known for his part in the Church–Rosser theorem, in lambda calculus.

New!!: Lambda calculus and J. Barkley Rosser · See more »

Java (programming language)

Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.

New!!: Lambda calculus and Java (programming language) · See more »


JavaScript, often abbreviated as JS, is a high-level, interpreted programming language.

New!!: Lambda calculus and JavaScript · See more »

Kappa calculus

In mathematical logic, category theory, and computer science, kappa calculus is a formal system for defining first-order functions.

New!!: Lambda calculus and Kappa calculus · See more »

Kleene–Rosser paradox

In mathematics, the Kleene–Rosser paradox is a paradox that shows that certain systems of formal logic are inconsistent, in particular the version of Curry's combinatory logic introduced in 1930, and Church's original lambda calculus, introduced in 1932–1933, both originally intended as systems of formal logic.

New!!: Lambda calculus and Kleene–Rosser paradox · See more »

Knights of the Lambda Calculus

The Knights of the Lambda Calculus is a semi-fictional organization of expert Lisp and Scheme hackers.

New!!: Lambda calculus and Knights of the Lambda Calculus · See more »

Krivine machine

In theoretical computer science, the Krivine machine is an abstract machine (sometimes called virtual machine).

New!!: Lambda calculus and Krivine machine · See more »

Lambda calculus

Lambda calculus (also written as λ-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution.

New!!: Lambda calculus and Lambda calculus · See more »

Lambda calculus definition

Formal definitions of the Lambda calculus.

New!!: Lambda calculus and Lambda calculus definition · See more »

Lambda cube

In mathematical logic and type theory, the λ-cube is a framework for exploring the axes of refinement in Thierry Coquand's calculus of constructions, starting from the simply typed lambda calculus (written as λ→ in the cube diagram) as the vertex of a cube placed at the origin, and the calculus of constructions (higher-order dependently typed polymorphic lambda calculus; written as λPω in the diagram) as its diametrically opposite vertex.

New!!: Lambda calculus and Lambda cube · See more »

Lambda-mu calculus

In mathematical logic and computer science, the lambda-mu calculus is an extension of the lambda calculus introduced by M. Parigot.

New!!: Lambda calculus and Lambda-mu calculus · See more »

Lazy evaluation

In programming language theory, lazy evaluation, or call-by-need is an evaluation strategy which delays the evaluation of an expression until its value is needed (non-strict evaluation) and which also avoids repeated evaluations (sharing).

New!!: Lambda calculus and Lazy evaluation · See more »

Let expression

In computer science, a "let" expression associates a function definition with a restricted scope.

New!!: Lambda calculus and Let expression · See more »

Library (computing)

In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development.

New!!: Lambda calculus and Library (computing) · See more »


Linguistics is the scientific study of language, and involves an analysis of language form, language meaning, and language in context.

New!!: Lambda calculus and Linguistics · See more »

Lisp (programming language)

Lisp (historically, LISP) is a family of computer programming languages with a long history and a distinctive, fully parenthesized prefix notation.

New!!: Lambda calculus and Lisp (programming language) · See more »

Low-level programming language

A low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture—commands or functions in the language map closely to processor instructions.

New!!: Lambda calculus and Low-level programming language · See more »

Mathematical logic

Mathematical logic is a subfield of mathematics exploring the applications of formal logic to mathematics.

New!!: Lambda calculus and Mathematical logic · See more »

Mathematical proof

In mathematics, a proof is an inferential argument for a mathematical statement.

New!!: Lambda calculus and Mathematical proof · See more »


Mathematics (from Greek μάθημα máthēma, "knowledge, study, learning") is the study of such topics as quantity, structure, space, and change.

New!!: Lambda calculus and Mathematics · See more »

Minimalism (computing)

In computing, minimalism refers to the application of minimalist philosophies and principles in the design and use of hardware and software.

New!!: Lambda calculus and Minimalism (computing) · See more »

Miranda (programming language)

Miranda is a lazy, purely functional programming language designed by David Turner as a successor to his earlier programming languages SASL and KRC, using some concepts from ML and Hope.

New!!: Lambda calculus and Miranda (programming language) · See more »

MIT Press

The MIT Press is a university press affiliated with the Massachusetts Institute of Technology (MIT) in Cambridge, Massachusetts (United States).

New!!: Lambda calculus and MIT Press · See more »

ML (programming language)

ML (Meta Language) is a general-purpose functional programming language.

New!!: Lambda calculus and ML (programming language) · See more »

Model of computation

In computer science, and more specifically in computability theory and computational complexity theory, a model of computation is a model which describes how a set of outputs are computed given a set of inputs.

New!!: Lambda calculus and Model of computation · See more »

Model theory

In mathematics, model theory is the study of classes of mathematical structures (e.g. groups, fields, graphs, universes of set theory) from the perspective of mathematical logic.

New!!: Lambda calculus and Model theory · See more »

Name binding

In programming languages, name binding is the association of entities (data and/or code) with identifiers.

New!!: Lambda calculus and Name binding · See more »

Name collision

The term "name collision" refers to the nomenclature problem that occurs in computer programs when the same variable name is used for different things in two separate areas that are joined, merged, or otherwise go from occupying separate namespaces to sharing one.

New!!: Lambda calculus and Name collision · See more »

Name resolution (programming languages)

In programming languages, name resolution refers to the resolution of the tokens within program expressions to the intended program components.

New!!: Lambda calculus and Name resolution (programming languages) · See more »

Natural number

In mathematics, the natural numbers are those used for counting (as in "there are six coins on the table") and ordering (as in "this is the third largest city in the country").

New!!: Lambda calculus and Natural number · See more »

Normalization property (abstract rewriting)

In mathematical logic and theoretical computer science, a rewrite system has the (strong) normalization property or is terminating if every term is strongly normalizing; that is, if every sequence of rewrites eventually terminates with an irreducible term, also called a normal form.

New!!: Lambda calculus and Normalization property (abstract rewriting) · See more »

North Holland

North Holland (Noord-Holland, West Frisian Dutch: Noard-Holland) is a province of the Netherlands located in the northwestern part of the country.

New!!: Lambda calculus and North Holland · See more »

Object (computer science)

In computer science, an object can be a variable, a data structure, a function, or a method, and as such, is a value in memory referenced by an identifier.

New!!: Lambda calculus and Object (computer science) · See more »

Operational definition

An operational definition is the articulation of operationalization (or statement of procedures) used in defining the terms of a process (or set of validation tests) needed to determine the nature of an item or phenomenon (a variable, term, or object) and its properties such as duration, quantity, extension in space, chemical composition, etc.

New!!: Lambda calculus and Operational definition · See more »

Operator associativity

In programming languages, the associativity of an operator is a property that determines how operators of the same precedence are grouped in the absence of parentheses.

New!!: Lambda calculus and Operator associativity · See more »

Parallel computing

Parallel computing is a type of computation in which many calculations or the execution of processes are carried out concurrently.

New!!: Lambda calculus and Parallel computing · See more »

Partially ordered set

In mathematics, especially order theory, a partially ordered set (also poset) formalizes and generalizes the intuitive concept of an ordering, sequencing, or arrangement of the elements of a set.

New!!: Lambda calculus and Partially ordered set · See more »

Pascal (programming language)

Pascal is an imperative and procedural programming language, which Niklaus Wirth designed in 1968–69 and published in 1970, as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It is named in honor of the French mathematician, philosopher and physicist Blaise Pascal. Pascal was developed on the pattern of the ALGOL 60 language. Wirth had already developed several improvements to this language as part of the ALGOL X proposals, but these were not accepted and Pascal was developed separately and released in 1970. A derivative known as Object Pascal designed for object-oriented programming was developed in 1985; this was used by Apple Computer and Borland in the late 1980s and later developed into Delphi on the Microsoft Windows platform. Extensions to the Pascal concepts led to the Pascal-like languages Modula-2 and Oberon.

New!!: Lambda calculus and Pascal (programming language) · See more »


The Portable Document Format (PDF) is a file format developed in the 1990s to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems.

New!!: Lambda calculus and PDF · See more »

Peter Landin

Peter John Landin (5 June 1930, Sheffield – 3 June 2009) was a British computer scientist.

New!!: Lambda calculus and Peter Landin · See more »


Philosophy (from Greek φιλοσοφία, philosophia, literally "love of wisdom") is the study of general and fundamental problems concerning matters such as existence, knowledge, values, reason, mind, and language.

New!!: Lambda calculus and Philosophy · See more »

Procedural programming

Procedural programming is a programming paradigm, derived from structured programming, based upon the concept of the procedure call.

New!!: Lambda calculus and Procedural programming · See more »

Process calculus

In computer science, the process calculi (or process algebras) are a diverse family of related approaches for formally modelling concurrent systems.

New!!: Lambda calculus and Process calculus · See more »

Programming idiom

A programming idiom or code idiom is expressing a special feature of a recurring construct in one or more programming languages.

New!!: Lambda calculus and Programming idiom · See more »

Programming language

A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.

New!!: Lambda calculus and Programming language · See more »

Programming language theory

Programming language theory (PLT) is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of programming languages and their individual features.

New!!: Lambda calculus and Programming language theory · See more »

Proof theory

Proof theory is a major branchAccording to Wang (1981), pp.

New!!: Lambda calculus and Proof theory · See more »

Pure type system

In the branches of mathematical logic known as proof theory and type theory, a pure type system (PTS), previously known as a generalized type system (GTS), is a form of typed lambda calculus that allows an arbitrary number of sorts and dependencies between any of these.

New!!: Lambda calculus and Pure type system · See more »


Recursion occurs when a thing is defined in terms of itself or of its type.

New!!: Lambda calculus and Recursion · See more »

Recursive definition

A recursive definition (or inductive definition) in mathematical logic and computer science is used to define the elements in a set in terms of other elements in the set (Aczel 1978:740ff).

New!!: Lambda calculus and Recursive definition · See more »

Reduction strategy (lambda calculus)

In lambda calculus, a branch of mathematical logic concerned with the formal study of functions, a reduction strategy is how a complex expression is reduced to a simple expression by successive reduction steps.

New!!: Lambda calculus and Reduction strategy (lambda calculus) · See more »


In mathematics, computer science, and logic, rewriting covers a wide range of (potentially non-deterministic) methods of replacing subterms of a formula with other terms.

New!!: Lambda calculus and Rewriting · See more »

Richard Montague

Richard Merritt Montague (September 20, 1930 – March 7, 1971) was an American mathematician and philosopher.

New!!: Lambda calculus and Richard Montague · See more »

Ruy de Queiroz

Ruy J. Guerra B. de Queiroz (born January 11, 1958 in Recife) is an associate professor at Universidade Federal de Pernambuco and holds significant works in the research fields of Mathematical logic, proof theory, foundations of mathematics and philosophy of mathematics.

New!!: Lambda calculus and Ruy de Queiroz · See more »

Scala (programming language)

Scala is a general-purpose programming language providing support for functional programming and a strong static type system.

New!!: Lambda calculus and Scala (programming language) · See more »

Scheme (programming language)

Scheme is a programming language that supports multiple paradigms, including functional programming and imperative programming, and is one of the two main dialects of Lisp.

New!!: Lambda calculus and Scheme (programming language) · See more »

Scope (computer science)

In computer programming, the scope of a name binding – an association of a name to an entity, such as a variable – is the region of a computer program where the binding is valid: where the name can be used to refer to the entity.

New!!: Lambda calculus and Scope (computer science) · See more »

Scott continuity

In mathematics, given two partially ordered sets P and Q, a function f \colon P \rightarrow Q between them is Scott-continuous (named after the mathematician Dana Scott) if it preserves all directed suprema, i.e. if for every directed subset D of P with supremum in P its image has a supremum in Q, and that supremum is the image of the supremum of D: that is, \sqcup f.

New!!: Lambda calculus and Scott continuity · See more »

SECD machine

The SECD machine is a highly influential (See: #Landin's contribution) virtual machine and abstract machine intended as a target for functional programming language compilers.

New!!: Lambda calculus and SECD machine · See more »


Self-reference occurs in natural or formal languages when a sentence, idea or formula refers to itself.

New!!: Lambda calculus and Self-reference · See more »

Simply typed lambda calculus

The simply typed lambda calculus (\lambda^\to), a form of type theory, is a typed interpretation of the lambda calculus with only one type constructor: \to that builds function types.

New!!: Lambda calculus and Simply typed lambda calculus · See more »

Singleton (mathematics)

In mathematics, a singleton, also known as a unit set, is a set with exactly one element.

New!!: Lambda calculus and Singleton (mathematics) · See more »

SKI combinator calculus

The SKI combinator calculus is a combinatory logic, a computational system that may be perceived as a reduced version of the untyped lambda calculus.

New!!: Lambda calculus and SKI combinator calculus · See more »


Smalltalk is an object-oriented, dynamically typed, reflective programming language.

New!!: Lambda calculus and Smalltalk · See more »

Standard ML

Standard ML (SML; "Standard Meta Language") is a general-purpose, modular, functional programming language with compile-time type checking and type inference.

New!!: Lambda calculus and Standard ML · See more »

Stephen Cole Kleene

Stephen Cole Kleene (January 5, 1909 – January 25, 1994) was an American mathematician.

New!!: Lambda calculus and Stephen Cole Kleene · See more »

Structure and Interpretation of Computer Programs

Structure and Interpretation of Computer Programs (SICP) is a textbook aiming to teach the principles of computer programming, such as abstraction in programming, metalinguistic abstraction, recursion, interpreters, and modular programming.

New!!: Lambda calculus and Structure and Interpretation of Computer Programs · See more »

Studia Logica

Studia Logica is an international journal of mathematics and logic.

New!!: Lambda calculus and Studia Logica · See more »


In computer programming, a subroutine is a sequence of program instructions that performs a specific task, packaged as a unit.

New!!: Lambda calculus and Subroutine · See more »

Substitution (algebra)

In algebra, the operation of substitution can be applied in various contexts involving formal objects containing symbols (often called variables or indeterminates); the operation consists of systematically replacing occurrences of some symbol by a given value.

New!!: Lambda calculus and Substitution (algebra) · See more »


In programming language theory, subtyping (also subtype polymorphism or inclusion polymorphism) is a form of type polymorphism in which a subtype is a datatype that is related to another datatype (the supertype) by some notion of substitutability, meaning that program elements, typically subroutines or functions, written to operate on elements of the supertype can also operate on elements of the subtype.

New!!: Lambda calculus and Subtyping · See more »

Syntactic sugar

In computer science, syntactic sugar is syntax within a programming language that is designed to make things easier to read or to express.

New!!: Lambda calculus and Syntactic sugar · See more »

System F

System F, also known as the (Girard–Reynolds) polymorphic lambda calculus or the second-order lambda calculus, is a typed lambda calculus that differs from the simply typed lambda calculus by the introduction of a mechanism of universal quantification over types.

New!!: Lambda calculus and System F · See more »

Template (C++)

Templates are a feature of the C++ programming language that allows functions and classes to operate with generic types.

New!!: Lambda calculus and Template (C++) · See more »

Thierry Coquand

Thierry Coquand (born 18 April 1961 in Jallieu, Isère, France) is a professor in computer science at the University of Gothenburg, Sweden.

New!!: Lambda calculus and Thierry Coquand · See more »


In computer programming, a thunk is a subroutine used to inject an additional calculation into another subroutine.

New!!: Lambda calculus and Thunk · See more »

Truth value

In logic and mathematics, a truth value, sometimes called a logical value, is a value indicating the relation of a proposition to truth.

New!!: Lambda calculus and Truth value · See more »

Turing completeness

In computability theory, a system of data-manipulation rules (such as a computer's instruction set, a programming language, or a cellular automaton) is said to be Turing complete or computationally universal if it can be used to simulate any Turing machine.

New!!: Lambda calculus and Turing completeness · See more »

Turing machine

A Turing machine is a mathematical model of computation that defines an abstract machine, which manipulates symbols on a strip of tape according to a table of rules.

New!!: Lambda calculus and Turing machine · See more »

Type system

In programming languages, a type system is a set of rules that assigns a property called type to the various constructs of a computer program, such as variables, expressions, functions or modules.

New!!: Lambda calculus and Type system · See more »

Typed lambda calculus

A typed lambda calculus is a typed formalism that uses the lambda-symbol (\lambda) to denote anonymous function abstraction.

New!!: Lambda calculus and Typed lambda calculus · See more »

Universal Turing machine

In computer science, a universal Turing machine (UTM) is a Turing machine that can simulate an arbitrary Turing machine on arbitrary input.

New!!: Lambda calculus and Universal Turing machine · See more »


Unlambda is a minimal, "nearly pure" functional programming language invented by David Madore.

New!!: Lambda calculus and Unlambda · See more »

Variable shadowing

In computer programming, variable shadowing occurs when a variable declared within a certain scope (decision block, method, or inner class) has the same name as a variable declared in an outer scope.

New!!: Lambda calculus and Variable shadowing · See more »

Virtual machine

In computing, a virtual machine (VM) is an emulation of a computer system.

New!!: Lambda calculus and Virtual machine · See more »

Redirects here:

A conversion, Abstraction operator, Alpha conversion, Alpha equivalence, Alpha reduction, Alpha renaming, Alpha-conversion, Alpha-renaming, AlphaRenaming, B-reduction, Beta conversion, Beta reduction, Beta substitution, Beta-reduction, Capture-avoiding substitution, Eta conversion, Eta expansion, Eta reduction, Eta-conversion, Eta-reduction, Functional abstraction, L calculus, L-calculus, Lambda Calculus, Lambda abstraction, Lambda calculas, Lambda calculi, Lambda expressions, Lambda kalkül, Lambda language, Lambda programming, Lambda term, Lambda-calculus, Lambda-definable function, Lambda-definable functions, Lambda-expression, Lambda-recursive function, Lamda calculus, Lamda expression, Lanbda-calculus, Type free lambda calculus, Type-free lambda calculus, Typefree lambda calculus, Untyped lambda calculus, Α conversion, Α-conversion, Β-reduction, Η conversion, Η-conversion, Λ calculus, Λ-abstraction, Λ-calculus, Λa-calculus.


[1] https://en.wikipedia.org/wiki/Lambda_calculus

Hey! We are on Facebook now! »