gpt4 book ai didi

recursion - LISP 只检索列表项的第一个元素

转载 作者:太空宇宙 更新时间:2023-11-03 19:01:14 25 4
gpt4 key购买 nike

我有:

(defun getTotalValue(pack)
(cond ((null pack) 0)
(t (+ (car (car pack)))) (getTotalValue (cdr pack))
)
)

据我了解,这会将列表中项目的所有第一个元素相加。测试函数调用将是:

(getTotalValue '((10 c u) (3 s u) (5 h d) (7 s d) (12 h u)))

但是,当我运行上面的代码时,它只打印出列表中第一项的第一个元素,10。为什么它不把所有项目的第一个元素加起来?

最佳答案

您遇到了括号问题 -- (car (car pack)) 后有两个错位的右括号,因此 cond 表达式在那里终止并且发生了递归,但结果是扔掉了。

(defun getTotalValue (pack)
(cond ((null pack) 0)
(t (+ (car (car pack)) (getTotalValue (cdr pack))))))

关于recursion - LISP 只检索列表项的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12593547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com