;问题3
(defun listcheck(lst)
(cond
((not (null lst))
(cond
((eq (car lst) 'a) (+ (listcheck (cdr lst)) 1))
( T (listcheck (cdr lst)))
)
)
)
0
)
此函数始终打印出 0 不确定我哪里出错了任何输入都会有帮助
最佳答案
它正在打印 0
,因为函数以 0
结束,在 cond
之外。所以它在所有情况下都会返回 this,而不仅仅是递归的基础。仅当 lst
为 null 时才应返回。
(defun listcheck(lst)
(cond ((null lst) 0)
((eq (car lst) 'a) (+ (listcheck (cdr lst)) 1))
(T (listcheck (cdr lst)))))
关于recursion - lisp 中的递归列表函数,用于查找列表中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34686431/