当我从带有mit-scheme的文件中加载此函数时,出现未绑定变量错误

时间:2018-10-16 21:08:16

标签: scheme mit-scheme

我正在将学习计划作为大学课程的一部分。

我尝试将这段代码保存到文件fact-iter-001.scm:

(def (fact n)
  (def (fact-iter result counter)
    (if (> counter n)
        result
        (fact-iter (* result counter) (+ counter 1))))
  (fact-iter 1 1))

当我尝试将其加载到方案中时,我为事实事实生成了一个未绑定的变量错误:

unbound variable: fact-iter

从我对代码的理解来看,“ fact-iter”是在“事实”过程内部本地定义的,因此,在定义后立即调用它就应该可用。在写这个问题之前,我还检查了《计算机程序的结构和解释》这本书,那里有一个几乎相同的例子。

我假设我对代码的理解是完全错误的,或者我以错误的方式加载了文件,但是我不知道是哪个以及为什么。有人可以帮忙吗?

0 个答案:

没有答案