Lambda 微积分中是否允许未绑定变量?

Are unbound variables allowed in Lambda Calculus?

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

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

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

这些答案正确吗?

a)是

b)是的

c)是

d)否

e)是

f)是

g)是

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

a)是

b)否

c)是

d)否

e)是

f)否

g)否

我想我已经接近理解这一点了,但我需要最后一次推动才能完全理解它。无论如何,感谢您的帮助!

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

这与陈述非常相似:

f(x) = x^y

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

根据同样的逻辑,(λx.y)(...) = y 也是有效的。我们没有那个 y 的值,但我们不需要。

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