2012-11-08 64 views
-3

我想實現一個函數,它在調用時返回列表中的一個階乘的階乘。例如(事實'(2 4 3))=>(2 24 6),但我的工作不正常。我很肯定,我的執行邏輯是正確的,只是我找不到我的語法錯誤。所以,如果你可以看看,給一些反饋將是巨大這裏是代碼:返回列表編號的階乘

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

你將不得不解釋什麼「不工作」以及如何。 –

+0

當我給函數中的參數它返回無效的參數數量錯誤 –

+0

(fact'(1 2 3)) –

回答

2

什麼你似乎是試圖做的是應用階乘函數列表中的每個成員,並收集結果在一個列表中。

爲此,您需要一個因子函數和mapcar