Functional programming 使用Lambda表达式添加4
我知道使用lambda表达式,我们可以编写Functional programming 使用Lambda表达式添加4,functional-programming,lambda,lambda-calculus,Functional Programming,Lambda,Lambda Calculus,我知道使用lambda表达式,我们可以编写succ=λnfx•f(nfx)和两次=λfn•f(n)。我现在的目标是用这两个字母写add4,这两个字母在教堂的数字上加4 我该如何为此编写测试版缩减步骤 提前感谢您的帮助……嗯,两次成功是一个应用两次成功的函数,因此两次成功是一个应用两次成功的函数,从而应用四次成功。所以它应该是add4=tweeps(tweedsucc) 嗯,tweedsuch是一个应用suc两次的函数,因此tweedsuch(tweedsuch)是一个应用tweedsuch两次的
succ=λnfx•f(nfx)
和两次=λfn•f(n)
。我现在的目标是用这两个字母写add4,这两个字母在教堂的数字上加4
我该如何为此编写测试版缩减步骤
提前感谢您的帮助……嗯,
两次成功
是一个应用两次成功的函数,因此两次成功
是一个应用两次成功的函数,从而应用四次成功。所以它应该是add4=tweeps(tweedsucc)
嗯,
tweedsuch
是一个应用suc
两次的函数,因此tweedsuch(tweedsuch)
是一个应用tweedsuch
两次的函数,从而应用suc
四次。所以它应该是add4=tweeps(tweedsucc)
嗯,
tweedsuch
是一个应用suc
两次的函数,因此tweedsuch(tweedsuch)
是一个应用tweedsuch
两次的函数,从而应用suc
四次。所以它应该是add4=tweeps(tweedsucc)
嗯,
tweedsuch
是一个应用suc
两次的函数,因此tweedsuch(tweedsuch)
是一个应用tweedsuch
两次的函数,从而应用suc
四次。所以它应该是add4=tweeps(tweedsucc)
twice = λf.λn.(f (f n))
twice (twice succ)
=> twice (λf.λn.(f (f n)) succ)
=> twice λn.(succ (succ n))
=> λf.λn.(f (f n)) λn.(succ (succ n))
=> λf.λn.(f (f n)) λx.(succ (succ x))
=> λn.(λx.(succ (succ x)) (λx.(succ (succ x)) n))
=> λn.(λx.(succ (succ x)) (succ (succ n)))
=> λn.(succ (succ (succ (succ n))))
=> λn.(succ (succ (succ (succ n))))