我正在研究 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 编码包含算术和逻辑。