我正在研究lambda微积分,只有基本的了解。我阅读了许多网站和论文,并了解逻辑(T/F/和/或)、谓词和后继者的工作方式,但我不知道如何使用这个 lambda 演算在编程中完成其他事情。
我想知道如何通过在 lambda 演算中使用自然数和有理数对作为整数对来定义正负整数。
谢谢你的帮助。
你应该看看教会的编码。例如,它将整数定义为循环计数器。给定一个函数f
和一个变量x
,如果:
-
x
从不映射到f
,它是一个恒等式(相当于0) -
x
映射一次到f
,给出f x
,它给出一个循环计数(1) -
x
映射了两个,这给出了f (f x)
,它是两个循环(2);依此类推。
Church 编码以对的形式定义有符号数字。因此,仅使用函数及其组合,教会编码包括算术和逻辑。