lambda演算评估

lambda演算评估,lambda,Lambda,我是新来的,也不熟悉lambda演算。我的问题是: 在lambda演算归约(到标准形式)中,是否有方法计算表达式(以确保我正确地进行了归约) 例如(/代表lambda) (使用贝塔法) /x.y(/z.xz))(/y.zy) =>/x.y(/z.xz))z =>(/x.yx)z =>yz 现在如何确保我的降价是正确的?有没有一种方法可以计算原始表达式并将其与简化表达式进行比较?您在那里所做的已经是对Lambda表达式的计算。如果你的意思是让计算机计算它,像这样的lambda函数 在Haskel

我是新来的,也不熟悉lambda演算。我的问题是: 在lambda演算归约(到标准形式)中,是否有方法计算表达式(以确保我正确地进行了归约)

例如(/代表lambda) (使用贝塔法)

/x.y(/z.xz))(/y.zy)

=>/x.y(/z.xz))z
=>(/x.yx)z
=>yz


现在如何确保我的降价是正确的?有没有一种方法可以计算原始表达式并将其与简化表达式进行比较?

您在那里所做的已经是对Lambda表达式的计算。如果你的意思是让计算机计算它,像这样的lambda函数

在Haskell中是这样写的:

(\a b => b a)
Python:

lambda a, b: b(a)
C#:


你查过吗?我同意@MortenJensen-这不是一个与编程相关的问题,所以不应该这样。在
/x.y(/z.xz))(/y.zy)
中有一个不匹配的右括号。而且第一个
y
和最后一个
z
看起来是免费的,或者它们在定义的上下文之外使用。
(a, b) => b(a)