如何定义lambda演算中的正负整数和有理数

时间:2017-10-16 01:08:41

标签: lambda lambda-calculus church-encoding

我正在学习lambda演算并且只掌握它的基本知识。我阅读了许多网站和论文,并了解逻辑(T / F /和/或),谓词和后继者的工作方式,但我不知道如何通过使用这个lambda演算来完成编程中的其他事情。

我想知道如何通过在lambda演算中使用自然数和有理数对作为整数对来定义正整数和负整数。

感谢您的帮助。

1 个答案:

答案 0 :(得分:-1)

您应该查看Church encoding。例如,它将整数定义为循环计数器。给定函数f和变量x,如果:

  • x永远不会映射到f,它是一个标识(相当于0)
  • x将一次映射到f,这会给出f x,它会给出一个循环计数(1)
  • x映射了两个,它给出f (f x),它是两个循环(2);等等。

Church编码根据对定义有符号数。因此,仅使用函数及其组合,Church编码包含算术和逻辑。