COMS W3261 CS Theory
Lecture 23: The Lambda Calculus I

Outline

  1. History of the lambda calculus
  2. CFG for the lambda calculus
  3. Function abstraction
  4. Function application
  5. Free and bound variables
  6. Beta reductions
  7. Evaluating a lambda expression
  8. Currying
  9. Renaming bound variables by alpha reduction
  10. Eta conversion
  11. Substitutions
  12. Disambiguating lambda expressions

1. History of the Lambda Calculus

2. CFG for the Lambda Calculus

3. Function Abstraction

4. Function Application

5. Free and Bound Variables

6. Beta Reductions

7. Evaluating a Lambda Expression

8. Currying

9. Renaming Bound Variables by Alpha Reduction

10. Eta Conversion

11. Substitutions

12. Disambiguating Lambda Expressions

13. Practice Problems

  1. Evaluate (λx. λy. + x y)1 2.
  2. Evaluate (λf. f 2)(λx. + x 1).
  3. Evaluate (λx. (λx. + (* x 1)) x 2) 3.
  4. Evaluate (λx. λy. + x((λx. * x 1) y))2 3.
  5. Is (λx. + x x) η-convertible to (+ x)?
  6. Show how all bound variables in a lambda expression can be given distinct names.
  7. Construct an unambiguous grammar for lambda calculus.

14. References


aho@cs.columbia.edu
verma@cs.columbia.edu