【发布时间】:2013-10-02 04:25:33
【问题描述】:
我正在尝试编写一个迭代过程以使用内置过程模数、余数或 / 在方案中进行模数运算而不。但是我在尝试编写代码时遇到了一些问题,到目前为止看起来像这样:
(define (mod a b)
(define (mod-iter a b)
(cond ((= b 0) 0)
((< b 0) (+ old_b new_b))))
(mod-iter a (- a b)))
如您所见,我遇到了需要将 b 的原始值添加到 b 的当前值的问题。我不知道该怎么做。另外,当我将第二个条件的答案保留为原始数据时(只是为了确保整个过程有效),我会收到“未指定的返回值”错误,我不确定为什么会发生这种情况,因为我的代码的其余部分循环(或者看起来如此?) 提前感谢您对此的任何见解。
【问题讨论】:
-
什么是
old_b和new_b? -
请注意,这种只调用一次的内部定义的使用是使用“命名 let”的绝佳场所,如 @ÓscarLópez 的 recent answer 所示。
标签: scheme