我一直在阅读的《计算机程序的结构和解释》一书通过定义零和增量函数来介绍 Church 数字
zero: λf. λx. x
increment: λf. λx. f ((n f) x)
这对我来说似乎很复杂,我花了很长时间才弄清楚并推导出一个 ( λf.λx. f x
) 和两个 ( λf.λx. f (f x)
)。
用这种方式编码数字不是更简单吗,零是空的 lambda?
zero: λ
increment: λf. λ. f
现在很容易推导出一个 ( λ. λ
) 和两个 ( λ. λ. λ
),依此类推。
这似乎是用 lambda 表示数字的一种更直接、更直观的方式。这种方法是否存在问题,因此有充分的理由说明教堂数字以它们的方式工作吗?这种方法是否已经得到证实?