lambda演算评估
我是新来的,也不熟悉lambda演算。我的问题是: 在lambda演算归约(到标准形式)中,是否有方法计算表达式(以确保我正确地进行了归约) 例如(/代表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
/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)