我一直在阅读关于lambda演算的内容,并且喜欢它提出的想法,但有一些我无法解释的事情;
lambda演算如何添加数字?
我理解
(\x . + x x) 3
与3 + 3
相同,即6
,但首先如何实施添加功能?
是编译器/语言必须内置的东西,还是只能由lambda演算定义?
答案 0 :(得分:4)
假设您正在使用Church numerals,而不是某种原始数字类型,则添加是组合:
\x \y . (\z . x(y(z)))
如果你在lambda演算中添加了某种原始数字类型,则add必须是原语,或者必须根据后继操作来定义。