不能推导出lambda表达式λx.λy.x(xy)的数字表示(教会编码)

时间:2016-01-28 15:33:10

标签: lambda-calculus church-encoding

我有一个lambda表达式:λx.λy.x(xy),我应该推断它的整数表示。我已经阅读了很多关于教会编码和教会数字的内容,但我找不到它的数字。你能用一种3岁的孩子比维基百科更能理解或推荐我的资源向你解释吗?

1 个答案:

答案 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实际上非常清楚。你有什么不明白的?