gpt4 book ai didi

list - 计算列表中原子的所有出现次数? - 口齿不清

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

我需要编写一个函数来计算列表中给定原子的所有出现次数。这是我的:

(defun my-count (a L)
(cond
((null L) nil)
((equal a (car L))(+ 1 (my-count a (cdr L))))
(t (my-count a(cdr L)))
)
)

据我了解,这应该可行。但是,当我运行跟踪时,我发现当 (equals a car L) 评估为 true 时,它​​会进行递归调用但不会初始化 + 1。显然我遗漏了一些东西。

最佳答案

问题是您的空条件。您正在进行递归加法,完成后您应该加 0,而不是 nil:

(defun my-count (a L)
(cond
((null L) 0)
((equal a (car L)) (+ 1 (my-count a (cdr L))))
(t (my-count a (cdr L)))))

比如

? (my-count 'x '(a x b))
1
? (my-count 'x '(a x x b))
2
? (my-count 'x '(a b))
0

关于list - 计算列表中原子的所有出现次数? - 口齿不清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937885/

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