Lambda Calculus如何增加数字?

时间:2015-04-20 19:31:23

标签: lambda functional-programming lambda-calculus

我一直在阅读关于lambda演算的内容,并且喜欢它提出的想法,但有一些我无法解释的事情;

lambda演算如何添加数字?

我理解

(\x . + x x) 3

3 + 3相同,即6,但首先如何实施添加功能?

是编译器/语言必须内置的东西,还是只能由lambda演算定义?

1 个答案:

答案 0 :(得分:4)

假设您正在使用Church numerals,而不是某种原始数字类型,则添加是组合:

\x \y . (\z . x(y(z)))

如果你在lambda演算中添加了某种原始数字类型,则add必须是原语,或者必须根据后继操作来定义。