-3

呼び出されたときにリスト内の数値の階乗を返す関数を実装しようとしています。たとえば、 (fact '(2 4 3)) => (2 24 6) しかし、私のものは機能していません。構文エラーが見つからないだけで、ロジックが実装に対して正しいと確信しています。ご覧になり、フィードバックをお寄せいただければ幸いです。コードは次のとおりです。

(defun fact (list)
    (cond ((null list) 0)
        ((zerop (first list) 1))
        (* first list(fact (rest list)))    
        ))
4

1 に答える 1

2

あなたがやろうとしているように見えるのは、リストの各メンバーに階乗関数を適用し、結果をリストに収集することです。

このためには、階乗関数とが必要ですmapcar

于 2012-11-08T09:33:22.547 に答える