;问题3
(defun listcheck(lst)
(cond
((not (null lst))
(cond
((eq (car lst) 'a) (+ (listcheck (cdr lst)) 1))
( T (listcheck (cdr lst)))
)
)
)
0
)
此函数始终打印0,不确定哪里出错,任何输入都会有帮助
答案 0 :(得分:2)
它正在打印0
,因为该功能以0
之外的cond
结尾。所以它在所有情况下都返回它,而不仅仅是递归的基础。只有在lst
为空时才会返回。
(defun listcheck(lst)
(cond ((null lst) 0)
((eq (car lst) 'a) (+ (listcheck (cdr lst)) 1))
(T (listcheck (cdr lst)))))