Lambda演算约化解释

Lambda演算约化解释,lambda,beta,reduction,calculus,Lambda,Beta,Reduction,Calculus,下面两个lambda表达式的b-约化有一些问题,有人可以给我解释一下如何解决它们: (λ f . λ x . f (f x)) (λ x . x (λ x . λ y . x)) 所以,lambda演算很像在编程中使用参数。lambda标记函数,名称标记参数的名称以及传递给它的内容。其余部分只是代码的输入 因此,使用您的第一个示例: λf。λx。f x fx是输入 λf是函数,将f视为参数名 f是如何应用的 目前,λx可以忽略 因此,第一个简化是取fx,意识到它是f的一个参数,然后将它传递给f

下面两个lambda表达式的b-约化有一些问题,有人可以给我解释一下如何解决它们:

(λ f . λ x . f (f x))
(λ x . x (λ x . λ y . x))

所以,lambda演算很像在编程中使用参数。lambda标记函数,名称标记参数的名称以及传递给它的内容。其余部分只是代码的输入

因此,使用您的第一个示例:

λf。λx。f x

fx是输入

λf是函数,将f视为参数名

f是如何应用的

目前,λx可以忽略

因此,第一个简化是取fx,意识到它是f的一个参数,然后将它传递给f函数,在第二个f处应用。所以在第一步之后,它看起来像

λf。λx。f x

f x传递给f

fx。λx。f

f x应用于函数

λx。f x

还有一步要做,但我会让你做的


此外,如果没有括号,请将输入视为两个不同的值。这家伙在解释上真的很有帮助。他确实有一个系列讲座。

我不确定,但我认为最后一步是将x作为一个参数应用,因此最终结果是f。下一步,我可以从λx减少。xλx。λy。x到λx。λy。我不知道它是否正确,但我不知道最后一个表达式中的参数是什么。如果有人能证实,那就太好了。是的,那件很奇怪。我觉得有一条规则我忘了。