beta减少:更换绑定变量的正确方法?

时间:2014-02-21 01:17:53

标签: lambda-calculus

说我有一个lambda表达式的例子,\x意味着代表lambda x

以下内容的β减少会是什么?

(\x.\x.(x x)) \z.z

我的第一直觉就是

\x.(\z.z \z.z)

但我与之交谈过的人认为第二个\ x也将被替换为\z.z

这意味着它真的是

\(\z.z).(\z.z \z.z) 

有人可以澄清一下正确的做法。我不能说我真的理解第二种方法。

1 个答案:

答案 0 :(得分:1)

实际上,(\x.\x.(x x)) \z.z是等同于(\x.\y.(y y)) \z.z的alpha,因为变量总是绑定到最接近的lambda抽象。

这意味着(\x.\x.(x x)) \z.z\x.(x x)等效。{/ p>

从未对lambda抽象进行替换,\x.部分。