-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 回答