# HR F#: Lambda Calculus - Reductions #2

The second λ-calculus problem is following:

Reduce the following to no more than one term. If the expression cannot be reduced, enter "CAN'T REDUCE".

((λx.((λy.(x y)) x)) (λz.w))

Let's reduce the expressions:

- Framing parentheses are not required:
`(λx.((λy.(x y)) x)) (λz.w)`

- Rewrite function body with the argument being substituted with the value:
`((λy.((λz.w) y)) (λz.w))`

. - Remove parentheses again:
`(λy.((λz.w) y)) (λz.w)`

. - And substitute again:
`(λz.w) (λz.w)`

. - Performing application gives just "free" variable
`w`

.

So the expression `((λx.((λy.(x y)) x)) (λz.w))`

can be reduced to just `w`

.

Why not to stay updated if the subject is interesting? Join Telegram channel Alex@Net or follow alex_at_net on Twitter. Or just, use the comments form below.