gpt4 book ai didi

lisp - 教会数字转换为 int 没有语言原始

转载 作者:太空宇宙 更新时间:2023-11-03 18:38:31 24 4
gpt4 key购买 nike

是否可以在不使用诸如 add1 之类的语言原语的情况下将教堂数字转换为整数表示?

我遇到的所有示例都使用原语来 dechurch 到 int

例子:

 plus1 = lambda x: x + 1
church2int = lambda n: n(plus1)(0)

示例 2:

 (define (church-numeral->int cn)
((cn add1) 0))

我正在试验 micro lisp 解释器(仅使用 John McCarthy 的 10 条规则),想了解是否可以在不添加原语的情况下完成。

最佳答案

整数数字类型不是 McCarthy 的 Lisp 基本原始过程列表的一部分 - 你只有那个级别的函数,不存在其他数据类型。这就是为什么如果我们要严格遵守 Lisp 的这种简约定义,则整数需要表示为函数(例如,使用教堂数字)。所以答案是。您无法转换为尚不存在的数据类型。

现在假设我们在语言中添加整数作为原子(请注意,向语言中添加新的数据类型超出了所提到的 7-10 个原始过程)。为了进一步简化,假设我们只添加一个数字,数字零 - 然后我们仍然需要 add1 操作来构建其余的整数,根据 Peano axioms ,这要求存在自然数的后继运算。同样,如果没有至少将数字零作为原子和 add1 函数,我们就无法将教会数字转换为整数。

关于lisp - 教会数字转换为 int 没有语言原始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com