gpt4 book ai didi

algorithm - 当我运行程序来计算整数的教会数字时,为什么会出现 #("halt") 错误?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:07:26 26 4
gpt4 key购买 nike

Alonzo Church 使用 lambda 演算创建了一个用过程表示数字的系统。

例如:0 是 x , 1 是 f x , 2 是 f(f x) , 等等 其中数字是多少次 f被称为 x .我在 Scheme 中编写了一个程序,该程序基于 0 和 add-1 的先前定义来迭代计算数字的教会数字。代码会放在文末。我尝试在数字 7 上运行这个函数,但我得到一个模糊的错误 Error: <: number required, but got #("halt") [church-numeral, (anon), (anon), (anon), <] .唯一的东西 <正在比较的是数字,我在网上找不到任何关于 #("halt") 的信息除了 post关于错误在语言上是不正确的。这个错误是什么意思,我该如何解决?

代码:

(define zero (lambda (f) (lambda (x) x)))

(define (add-1 n)
(lambda (f) (lambda (x) (f ((n f) x)))))

(define one (lambda (f) (f (f x))))

(define (add m n)
(lambda (f) (lambda (x) ((m f) ((n f) x)))))

(define (church-numeral x)
(define (iter result x count)
(if (< count x)
(iter (add-1 result x (+ 1 count)))
count))
(iter zero x 0))

(church-numeral 7)

最佳答案

看起来(iter (add-1 result x (+ 1 count)))应该是(iter (add-1 result) x (+ 1 count))

关于algorithm - 当我运行程序来计算整数的教会数字时,为什么会出现 #("halt") 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55011650/

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