Operational and Denotational Semantics
What has been provided thus far are the rules for reducing expressions-- this amounts to the operational semantics of the lambda calculus.
We can also provide a denotational semantics for it. That is, for every expression in the λ-calculus we can say what value it should denote. This can be done by producing a mathematical function Eval[[]] which will take expressions to values. We do this by cases for the three types of l-expression.