我正在尝试编写一个仅将列表作为参数的函数,并计算该符号a
在列表中出现的次数,而不计算列表中子列表中的任何 a。
我对 Lisp 很陌生,所以请尽可能使用基本代码,这样我就可以理解它在做什么,即使它效率低下。
(defun times (l)
(setf x 'a)
(cond
((null l) nil)
((equal x (car l)) (+ 1 (times x (cdr L))))
(t (times x(cdr l)))))
Run Code Online (Sandbox Code Playgroud)
所以(times '(a b (a) c))
应该返回 1。但是我得到的错误是,当它应该得到一个参数时,这个行时间得到了两个参数。