减少Lambda微积分

时间:2013-08-28 10:24:06

标签: lambda functional-programming lambda-calculus

我最近一直在研究lambda计算,我对减少和替换有很多疑问。什么是alpha和beta减少?他们何时以及为何使用?

如果有人可以在lambda caculus中减少和替换任何有用的资源,那就太好了。

1 个答案:

答案 0 :(得分:5)

Beta缩减只是lambda演算中用于计算的主要应用程序规则。它通过替换来应用,如下所示:

如果你有lambda术语:(\ x.x) 和右边的一些价值:y

然后,您将所有绑定变量替换为lambda术语中(。)的右侧。 绑定变量是与(。)左边的变量匹配的变量,因此在本例中为x。

The reduction would be of the form:
(\x.x)y    //y gets bound to all occurences of x to the right of the period
y

其中y绑定到lambda表达式中所有出现的x。这是身份功能。

Alpha“缩减”通常称为alpha等效或alpha重写规则。它们声明您可以更改任何lambda术语及其绑定变量的名称,而无需更改表达式的含义。

例如,使用上面的标识函数,我们可以很容易地将lambda术语写成(\ j.j)。它不会改变我们的申请结果如下所示:

(\j.j)y    //y gets bound to all occurrences of j to the right of the period
y

关于学习资源:维基百科页面非常详细,但符号很重,可能需要一些好的重读。

如果你只是在寻找更好的直觉来了解lambda演算是如何运作的,那么大多数计算机科学系都会有幻灯片。

您可能会发现这些有用:http://www.classes.cs.uchicago.edu/archive/2002/winter/CS33600/slides/Lesson2.pdf https://www.utdallas.edu/~gupta/courses/apl/lambda.pdf

相关问题