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