【发布时间】:2018-10-27 00:44:56
【问题描述】:
代码示例 1
(defund sigma (func n)
(cond ((= n 1)(funcall func 1)
(t (+ (sigma func(1- n))
(funcal func n))))))
代码示例 2
(defund sigma(n)
(cond ((= n 1)1)
(t (+ n(sigma func(1- n))))
【问题讨论】:
-
这些函数都不会计算你所说的它们所做的。第二个函数引用了一个未定义的变量
func。您的缩进毫无希望,使代码极难阅读。您没有指定这是哪种语言。我不知道defund应该是什么。如果您希望有人回答,我强烈建议您解决此问题。 -
defund不是 Common Lisp 中的标准运算符;你能提供一个来自哪个库的引用,或者在你的问题中添加一些关于它的文档吗? -
您的第二个
defund似乎没有将func作为参数,只是n。然而它引用了func并且似乎将它传递给了它自己。这可能是神秘defund的一些特征;在常规defun下,这是错误的:函数sigma只能用一个参数调用。
标签: lisp common-lisp elisp