当我运行过程以计算整数的教堂数字时,为什么会出现#(“ halt”)错误?

时间:2019-03-05 21:11:43

标签: algorithm lambda functional-programming scheme lisp

阿隆佐·丘奇(Alonzo Church)使用lambda微积分创建了一个用过程表示数字的系统。

例如:0是x,1是f x,2是f(f x),依此类推,数字是在{{ 1}}。我在Scheme中基于先前的零和加1定义编写了一个程序,以迭代方式计算数字的教堂数字。代码将被张贴在帖子的末尾。我尝试在数字7上运行此函数,但得到一个模糊的错误fx唯一要比较的是数字,除了关于语言错误的post以外,我在Error: <: number required, but got #("halt") [church-numeral, (anon), (anon), (anon), <]的任何地方都找不到在线内容。该错误是什么意思,我该如何解决?

代码:

<

1 个答案:

答案 0 :(得分:1)

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