Draft

Lambda calculus, often regarded as the cornerstone of computational theory, is a mathematical system of function abstraction and application. Since its inception, it has served as a research vehicle. Beyond its theoretical significance, lambda calculus is also the foundation for many modern programming languages. Furthermore, its longstanding history and impact have made it a well-studied field.

One of the languages particularly building on the lambda calculus is Haskell. Haskell is a functional language that has captured the attention of developers for its elegance and mathematical soundness.

The Interpreter

Clone the repository, make sure you have the latest version of haskell stack installed. It will take caere of the rest from there.

$ stack build$ stack test$ stack exec lambda-exeLambda Calculus Interpreter!λ: (\x.x) (\y.y y)(λy.(y) (y))

In particular this example executed that lambda expressions (\x.x) (\y.y y). Lambda calculus works in the way that the expressions is reduced until it can not be reduced anymore. The resulting term is the value. This differs from "normal" programming languages where we would expect to get a string or a number out.

The core insight is that everything can be encoded as a lambda term.

Lambda Calculus