Lambda Calculus中是否允许使用未绑定的变量?

时间:2017-05-23 17:23:22

标签: lambda lambda-calculus

您好我正在尝试理解lambda演算,遗憾的是我对未绑定变量的主题感到困惑。 这是我从我的教授那里得到的关于有效lambda表达式的列表(不知道他为什么不使用像我在互联网上看到的其他地方一样的点btw)

lambda expressions

现在我对其中的几个感到困惑。说第五个:Lambda x。(xy) 为什么这是一个有效的表达?我不认为我可以像这样使用这个表达式,因为y是未绑定的:( Lambda x。(xy))5

以下是我尝试的一些练习:

ex

这些答案是否正确?

a)是

b)是

c)是

d)否

e)是

f)是

g)是

这一切都感觉不对,如果不允许未绑定的变量,那将更合乎逻辑。然后答案看起来像这样:

a)是

b)否

c)是

d)否

e)是

F)无

克)否

我认为我接近理解这一点,但我需要在后面进行最后一次推动才能完全理解。无论如何,谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

在表达式中使用未绑定(自由)变量没有任何问题。它们通常被认为是在全球范围内。

与陈述非常相似:

f(x) = x^y

其中,x是绑定的局部变量,y是自由的全局变量。我们没有足够的信息来解释f(x)对于x的给定值,但是在代数上,f(5) = 5^y

按照相同的逻辑说(λx.y)(...) = y是有效的。我们没有y的值,但我们不需要。

没有自由变量你怎么称为lambda? 组合器。这很有趣,因为它是真的。