The set of lambda expressions is generated by what we would, in modern day computer science terminology, call a context-free grammar.
Let Var be a countably infinite set of variables. We define the set
of lambda expressions as follows:
where and
.
Thus, the syntax of lambda expressions contains two ways to generate
new expressions from old ones. The construction is called
abstraction, while the construction
is called
application.
The intention is that is an expression representing a
function of
whose body (or rule for computation) is given by
.
Thus,
``abstracts'' the computation rule described in M
to operate on arbitrary input values
. This is analogous to
writing
without having to assign an unnecessary ``name''
to the function (after all,
and
are clearly
the same function, so the names
and
carry no significance.)
The expression is intended to represent the action of
``applying'' the function encoded by
to the argument
.