(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.