我正在计划我的作业。我正在寻求帮助。 基本上,我们创建了一个教师程序,并且它起作用了。然后,我们使用cond重写了if语句。现在执行该过程时,Racket内存不足。我想我们陷入无限循环。但是为什么呢?
首先,这是代码
第n个教职员工的实现。
(define (facult n)
(define (iter product counter)
(if (> counter n)
product
(iter (* counter product)(+ counter 1))))
(iter 1 1))
现在,如果使用此自定义cond语句替换掉。
(define (new-if-statement predicate then-clause else-clause)
(cond(predicate then-clause)
(else else-clause)))
将原始教师程序更改为:
(define (facult n)
(define (iter product counter)
(new-if-statement (> counter n)
product
(iter (* counter product)(+ counter 1))))
(iter 1 1))
我知道的事情: 如果您只能在执行“ then”语句时使用一个语句(与其他语句相同)。条件语句使您可以在每个谓词后使用多个语句。
但这如何帮助我找到无限循环的解决方案?