Questions tagged [lambda-calculus]

λ-calculus is a formal system for function definition, function application and recursion which forms the mathematical basis of functional programming.

λ-calculus is a formal system for function definition, function application and recursion which forms the mathematical basis of functional programming.

Since many people ask how to reduce λ-expressions with the intermediate steps, take a look at Lambda Calculus Calculator

Also available, Lambda calculus reduction workbench and its interpreter.

Free books and papers

An Introduction To Functional Programming Through Lambda Calculus by Greg Michaelson
Lambda Calculi with Types by Henk Barendregt
Introduction to Lambda Calculus by Henk Barendregt and Erik Barendsen

Interpretation of the Lambda Calculus in Practical Foundations of Mathematics by Paul Taylor
Note: This is an online book as HTML, no downloadable PDF version

589 questions
79
votes
2 answers

What does the "Lambda" in "Lambda calculus" stand for?

I've been reading about Lambda calculus recently but strangely I can't find an explanation for why it is called "Lambda" or where the expression comes from. Can anyone explain the origins of the term?
Klangen
  • 1,100
  • 8
  • 15
47
votes
2 answers

How does the Y combinator exemplify "Lambda calculus inconsistency"?

On the Wikipedia page for Fixed Point Combinators is written the rather mysterious text The Y combinator is an example of what makes the Lambda calculus inconsistent. So it should be regarded with suspicion. However it is safe to consider the Y…
Ben I.
  • 1,730
  • 14
  • 26
39
votes
7 answers

Clear, intuitive derivation of the fixed-point combinator (Y combinator)?

The fixed-point combinator FIX (aka the Y combinator) in the (untyped) lambda calculus ($\lambda$) is defined as: FIX $\triangleq \lambda f.(\lambda x. f~(\lambda y. x~x~y))~(\lambda x. f~(\lambda y. x~x~y))$ I understand its purpose and I can trace…
37
votes
2 answers

Quantum lambda calculus

Classically, there are 3 popular ways to think about computation: Turing machine, circuits, and lambda-calculus (I use this as a catch all for most functional views). All 3 have been fruitful ways to think about different types of problems, and…
32
votes
1 answer

Does there exist a Turing complete typed lambda calculus?

Do there exist any Turing complete typed lambda calculi? If so, what are a few examples?
Snowball
  • 423
  • 4
  • 7
30
votes
3 answers

Characterization of lambda-terms that have union types

Many textbooks cover intersection types in the lambda-calculus. The typing rules for intersection can be defined as follows (on top of the simply typed lambda-calculus with subtyping): $$ \dfrac{\Gamma \vdash M : T_1 \quad \Gamma \vdash M : T_2} …
Gilles 'SO- stop being evil'
  • 44,159
  • 8
  • 120
  • 184
30
votes
2 answers

Is Lambda Calculus purely syntactic?

I've been reading for a few weeks about the Lambda Calculus, but I have not yet seen anything that is materially distinct from existing mathematical functions, and I want to know whether it is just a matter of notation, or whether there are any new…
Neil
  • 431
  • 4
  • 5
29
votes
5 answers

Why are functional languages Turing complete?

Perhaps my limited understanding of the subject is incorrect, but this is what I understand so far: Functional programming is based off of Lambda Calculus, formulated by Alonzo Church. Imperative programming is based off of the Turing machine…
27
votes
1 answer

Is there a typed SKI calculus?

Most of us know the correspondence between combinatory logic and lambda calculus. But I've never seen (maybe I haven't looked deep enough) the equivalent of "typed combinators", corresponding to the simply typed lambda calculus. Does such thing…
25
votes
2 answers

What is beta equivalence?

In the script I am currently reading on the lambda calculus, beta equivalence is defined as this: The $\beta$-equivalence $\equiv_\beta$ is the smallest equivalence that contains $\rightarrow_\beta$. I have no idea what that means. Can someone…
magnattic
  • 557
  • 4
  • 11
25
votes
5 answers

$\lambda$-calculus with reflection

I'm looking for a simple calculus that supports reasoning about reflection, namely, the introspection and manipulation of running programs. Is there an untyped $\lambda$-calculus extension that enables one to convert $\lambda$-terms into a form…
Dave Clarke
  • 20,345
  • 4
  • 70
  • 114
24
votes
0 answers

Can a calculus have incremental copying and closed scopes?

A few days ago, I proposed the Abstract Calculus, a minimal untyped language that is very similar to the Lambda Calculus, except for the main difference that substitutions are O(1) (i.e., variables only occur once) and copying is an explicit,…
23
votes
3 answers

Basis sets for combinator calculus

It is well known that the S and K combinators form a basis set for combinator calculus, in the sense that all other combinators can be expressed in terms of them. There is also Curry's B, C, K, W basis, which has the same property. There must be an…
N. Virgo
  • 1,006
  • 5
  • 21
21
votes
5 answers

Lambda calculus outside functional programming?

I'm a university student, and we're currently studying Lambda Calculus. However, I still have a hard time understanding exactly why this is useful for me. I realize if you do loads of functional programming it might be useful, however I reckon that…
Jacob
  • 313
  • 1
  • 6
20
votes
7 answers

Lambda calculus didn't seem abstract. And I can't see the point of it

The underlying question: What does lambda calculus do for us that we can't do with the basic function properties and notation generally learned in middle school algebra? First of all, what does abstract mean in the context of lambda calculus? My…
JDG
  • 353
  • 2
  • 7
1
2 3
39 40