我有一个lambda表达式:λx.λy.x(xy)
,我应该推断它的整数表示。我已经阅读了很多关于教会编码和教会数字的内容,但我找不到它的数字。你能用一种3岁的孩子比维基百科更能理解或推荐我的资源向你解释吗?
答案 0 :(得分:1)
整数的教会编码如下:
"0" ≡ (λf.(λx.x))
:将(λf.(λx.x))
视为含义:给定函数f
和元素x
,结果为x
:就像应用函数一样f
零次到x
。"1" ≡ (λf.(λx.(fx)))
:将(λf.(λx.(fx)))
视为含义:给定函数f
和元素x
,结果为(fx)
:应考虑到将f
应用于x
,或者采用更标准的数学符号,例如 f(x)。"2" ≡ (λf.(λx.(f(fx))))
:将(λf.(λx.(f(fx))))
视为含义:给定函数f
和元素x
,结果为(f(fx))
:应考虑到将f
应用于x
两次,或者采用更标准的数学符号,例如 f(f(x))。"3" ≡ (λf.(λx.(f(f(fx)))))
:将(λf.(λx.(f(f(fx)))))
视为含义:给定函数f
和元素x
,结果为(f(f(fx)))
:应考虑到将f
应用于x
三次,或者采用更标准的数学符号,例如 f(f(f(x)))。< / LI>
我希望你看到模式(以及背后的逻辑)。在您的情况下,(λx.(λy.(x(xy))))
是数字2
的教会编码(当然,使用字母等效)。
wikiped article实际上非常清楚。你有什么不明白的?