如何对 λy.(λx.λy.yx)yz 应用一个 beta 归约?

How to apply just one beta-reduction to λy.(λx.λy.yx)yz?

我不明白如何得出正确答案,即 λy.(λw.wy)z

只有在必要时才允许重命名,从答案中可以明显看出使用了重命名。

让我们先添加一些括号使结构更加明显,因为也许这就是您感到困惑的原因:

λy.(λx.λy.yx)yz = λy.(((λx.λy.(yx))y)z)

最外层,无事可做。但是我们可以在 λy 中进行 beta 缩减,但首先我们需要进行 alpha 重命名以避免捕获 y:

    (λx.λy.(yx))y
--> (λx.λw.(wx))y   (alpha renaming y to w)
--> λw.wy           (beta)

现在把这个放到整个上下文中:

    λy.(λx.λy.yx)yz
--> λy.(λx.λw.(wx))yz   (alpha renaming y to w)
--> λy.(λw.wy)z         (beta)