Lambda演算约化解释
下面两个lambda表达式的b-约化有一些问题,有人可以给我解释一下如何解决它们: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
(λ 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。我不知道它是否正确,但我不知道最后一个表达式中的参数是什么。如果有人能证实,那就太好了。是的,那件很奇怪。我觉得有一条规则我忘了。