计算lisp中前n个数的和

计算lisp中前n个数的和,lisp,common-lisp,Lisp,Common Lisp,如果我调用(sum 4)它应该显示10,但它给了我一个错误:变量sum没有值公共Lisp是一个Lisp-2,这意味着变量和函数在不同的名称空间中 有一个函数sum,但在将其用作变量时,没有变量sum:(+n sum(-n 1)) 您的意图可能是编写(+n(sum(-n1)),而是递归调用函数sum: (defun sum(n) (cond ((= n 0) 0) ((= n 1) 1) (T (+ n sum (- n 1))))) (如果您想将函数sum作为一个值

如果我调用
(sum 4)
它应该显示10,但它给了我一个错误:变量sum没有值

公共Lisp是一个Lisp-2,这意味着变量和函数在不同的名称空间中

有一个函数
sum
,但在将其用作变量时,没有变量
sum
(+n sum(-n 1))

您的意图可能是编写
(+n(sum(-n1))
,而是递归调用函数
sum

(defun sum(n)
  (cond
    ((= n 0) 0)
    ((= n 1) 1)
    (T (+ n sum (- n 1)))))

(如果您想将函数
sum
作为一个值引用,例如,要将其传递给另一个函数,您可以编写
#“sum

公共Lisp是一个Lisp-2,这意味着变量和函数位于不同的名称空间中

有一个函数
sum
,但在将其用作变量时,没有变量
sum
(+n sum(-n 1))

您的意图可能是编写
(+n(sum(-n1))
,而是递归调用函数
sum

(defun sum(n)
  (cond
    ((= n 0) 0)
    ((= n 1) 1)
    (T (+ n sum (- n 1)))))

(如果您想将函数
sum
作为一个值引用,例如,要将其传递给另一个函数,您可以编写
#'sum

尝试将函数中的sum(-n1)替换为(sum(-n1))
sum
是一个变量。您可能想调用函数
sum
?考虑使用Lisp语法调用函数……另一方面,如果调用
(sum-1)
?;-)会发生什么情况这个问题似乎与主题无关,因为它是关于一个小的印刷错误(
sum(-n1)
,而不是
(sum(-n1))
),而且问题的内容不太可能帮助将来有同样问题的用户找到它。在函数中尝试将sum(-n1)替换为(sum(-n1))
sum
。您可能想调用函数
sum
?考虑使用Lisp语法调用函数……另一方面,如果调用
(sum-1)
?;-)会发生什么情况这个问题似乎离题了,因为它是关于一个小的印刷错误(
sum(-n1)
,而不是
(sum(-n1))
),而且问题的内容不太可能帮助将来有同样问题的用户找到它。为什么有两个基本情况<代码>(defun sum(n)(if(=n0)0(+n(sum(-n1щ)))应该可以。@uselpa当然,除了修复格式和询问的问题之外,我只是制作了一份询问者代码的精确副本。问题更多的是OP,尽管在我看来你也可以建议它。为什么是两个基本情况<代码>(defun sum(n)(if(=n0)0(+n(sum(-n1щ)))应该可以。@uselpa当然,除了修复格式和他们询问的问题之外,我只是制作了一份询问者代码的精确副本。问题更多的是OP,尽管你也可以建议它。