我是 lisp 的新手,正在编写一些简单的程序来熟悉它。我正在做的一件事是编写阶乘方法的递归和迭代版本。但是,我遇到了一个问题,似乎无法解决。
我在 Lisp 看到了一个类似的错误 : CHAR 既没有声明也没有绑定 ,但实际上没有找到解决方案,除了 OP 意识到他犯了一个“打字错误”。在 REPL 中,我可以使用 setf 函数,它工作正常。我也在使用带有 emacs 的 LispBox。我将不胜感激任何建议!
(defun it-fact(num)
(setf result 1)
(dotimes (i num)
(setf result (* result (+ i 1)))
)
)
IT-FACT 中的警告:RESULT 既没有声明也没有约束,它将被视为已声明为 SPECIAL。