说我有一个lambda表达式的例子,\x
意味着代表lambda x
以下内容的β减少会是什么?
(\x.\x.(x x)) \z.z
我的第一直觉就是
\x.(\z.z \z.z)
但我与之交谈过的人认为第二个\ x也将被替换为\z.z
这意味着它真的是
\(\z.z).(\z.z \z.z)
有人可以澄清一下正确的做法。我不能说我真的理解第二种方法。
答案 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.
部分。