【问题标题】:Add4 Using Lambda ExpressionAdd4 使用 Lambda 表达式
【发布时间】:2014-08-14 18:06:46
【问题描述】:

我知道使用 lambda 表达式,我们可以写出succ = λnfx • f (n f x )twice = λfn • f f(n )。我现在的目标是用这两个写 add4 ,在教堂数字上加 4。

如何为此编写 beta 缩减步骤?

提前感谢您的帮助...

【问题讨论】:

    标签: functional-programming lambda lambda-calculus


    【解决方案1】:

    好吧,twice succ 是一个应用两次succ 的函数,所以twice (twice succ) 是一个应用两次twice succ 的函数,从而应用了四次succ。所以应该是add4 = twice (twice succ)

    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))))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多