This paper is a concise and painless introduction to the $\lambda$-calculus.
This formalism was developed by Alonzo Church as a tool for studying the
mathematical properties of effectively computable functions. The formalism
became popular and has provided a strong theoretical foundation for the family
of functional programming languages. This tutorial shows how to perform
arithmetical and logical computations using the $\lambda$-calculus and how to
define recursive functions, even though $\lambda$-calculus functions are
unnamed and thus cannot refer explicitly to themselves.