-3
(defun recursive-sum (L)
  (if (null L)
  0
  (+ (first L) (recursive-sum L))))

コードの何が問題になっていますか?

次のエラー メッセージが表示されました。

*** - SYSTEM::READ-EVAL-PRINT: variable SUM.LISP has no value
The following restarts are available:
USE-VALUE      :R1      Input a value to be used instead of SUM.LISP.
STORE-VALUE    :R2      Input a new value for SUM.LISP.
ABORT          :R3      Abort debug loop
ABORT          :R4      Abort debug loop
ABORT          :R5      Abort main loop
Break 3 [5]> 
4

1 に答える 1

1

SUM.LISPあなたが提供したエラーコードを考慮すると、実際の値を持たない/特定の時点で定義されていないという変数を使用しているようです。コードでその変数名を検索し、それが常に適切に定義され、スコープ内にあることを確認してください。詳細については、さらにソース コードが必要です。


あなたが引用した機能はおそらく正しく動作しないので、私は修正版を実装しました:

(defun recursive-sum (L)
   (if L
      (+ (car L) (recursive-sum (cdr L))) 
      0))

コメントで述べたように、各呼び出しで指定されたリストを 1 要素ずつ減らします。

于 2012-11-19T02:11:07.437 に答える