(defun sum-n-numbers(n)(if(=n 1)
1
(+N(sum-n-numbers(-n 1)))))
编辑 2:
上面的代码运行,但是当我为输出键入 (SUM-N-NUMBERS 1 3 2) 时,它不起作用并且出现错误。
我知道这个简单的代码也可以由自动计算数字总和的 inbuild lisp 函数 (+ 1 3 2) 执行,但我有一个考试问题,要求使用 defun 函数计算 n 个数字的总和.(defun sum-n-numbers(n)
(if(=n 1)
1
(+N(sum-n-numbers(-n 1))
)
)
)
编辑1:这是我得到的错误:
Error: Call ((LAMBDA (#:N) (DECLARE (SPECIAL:SOURCE #) (LAMBDA-NAME SUM-N-NUMBERS)) (BLOCK #:SUM-N-NUMBERS (IF # 1 #))) 1 3 2) has the wrong number of arguments.
1 (abort) Return to level 1.
2 Return to debug level 1.
3 Return to level 0.
4 Return to top loop level 0.