涉及教堂数字的Lambda微积分评估


10

我知道教堂数字 看起来像(... n次...)。这意味着“将函数应用于函数次”。 λ 小号λ ž 小号小号cnλs.λz.s小号ñ žszsnz

函数的可能定义如下:。看着身体,我了解了功能背后的逻辑。但是,当我开始评估时,会陷入困境。我将用一个例子来说明:Ë 小号 = λ λ ñ λ 小号timesŤ一世Ës=λλñλsñs

(λm.λn.λs.m(ns))(λs.λz.ssz)(λs.λz.sssz)λs.(λs.λz.ssz)((λs.λz.sssz)s))λs.(λs.λz.ssz)(λz.sssz)λs.λz.(λz.sssz)(λz.sssz)z

现在在这种情况下,如果我首先应用,我将获得所需的结果。但是,如果我首先应用,我应该这样做,因为应用程序是从左侧开始关联的错误的结果:(λz.sssz)z(λz.sssz)(λz.sssz)

λs.λz.(λz.sssz)(λz.sssz)zλs.λz.(sss(λz.sssz))z

我再也不能减少这个了。我究竟做错了什么?结果应为λs.λz.ssssssz


您开学初期的教堂数字不正确。2由表示而不是。λ 小号λ ž 小号小号žλs.λz.s(sz)λs.λz.ssz
Uday Reddy 2012年

Answers:


7

我认为您的削减是正确的(不过,我只是盯着它看)。最后,您不能将应用于,这在术语中永远不会出现。是而不是。lambda演算中的函数有一个参数。它们被有效地咖喱:一个带两个参数函数被实现为一个参数的函数,它的第一个参数,并返回一个新的一个参数的函数,它的第二个参数,并返回结果。Ž λ Ž ˚F ˚F ž λ ž ˚F ˚F Ž λ Ž f f z (λz.sssz)zλz.ffzλz.(ff)zλz.f(fz)

在定义教堂数字时,您犯了同样的错误。的教堂数字基于次函数的组合。“功能施加次以函数 ”。什么你写的功能是外加次功能终于到,不打我作为一个有用的术语。Ñ 小号Ñ Ž λ 小号λ ž s s snnsnzs n 1 s zλs.λz.s(s(sz)))sn1sz

λ Ñ 小号Ñ 小号λ 小号Ž 小号小号2×3因此是。我让您检查一下它是否减少到。(λmns.m(ns))(λsz.s(sz))(λsz.s(s(sz)))λsz.s(s(s(s(s(sz)))))


就您的段落而言,您是对的,我知道这一点。令我惊讶的是,正确地运用联想会产生正确的结果。至于第二段:您是对的。同样,由于应用程序的左关联性,不使用花括号对我来说是错误的。现在,我将再次减少整个操作,看看是否由于缺少括号而造成了我的错误!
codd 2012年

它做了。您注意到我的符号暗示应用顺序错误解决了问题!接受您的答案。
codd 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.