Consider the expression (see p.9 lecture notes lambda.ps) (lambda f. lambda x. f (f x)) (lambda x.x) z Note that e1 e2 e3 is interpreted as (e1 e2) e3 Here e1 = (lambda f. lambda x. f (f x)) e2 = (lambda x.x) e3 = z Therefore, (lambda f. lambda x. f (f x)) (lambda x.x) z -> (lambda x. (lambda x.x) ((lambda x.x) x)) z (f is replaced by (lambda x.x) We rename some bound variables (lambda y. (lambda x.x) ((lambda x.x) y)) z -> (lambda x.x) ((lambda x.x) z) -> (lambda x.x) z -> z