Conventions

Write as few parentheses as possible:

$\displaystyle (\lambda y.(xy)) = \lambda y.xy
$

Application associates to the left:

$\displaystyle xyz = ((xy)z)
$

Abstractions bind as far as possible to the right:

$\displaystyle \lambda x.(\lambda y.y)x = (\lambda x.((\lambda y.y)x))
$

Abstractions can be abbreviated:

$\displaystyle \lambda x.\lambda y.M = \lambda xy.M
$

A lambda term in Haskell syntax:


\x -> M

...is the same as: $\lambda x.M$