小编Bre*_*ess的帖子

Lisp 函数计数在列表中重复出现

我正在尝试编写一个仅将列表作为参数的函数,并计算该符号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。但是我得到的错误是,当它应该得到一个参数时,这个行时间得到了两个参数。

lisp common-lisp

3
推荐指数
1
解决办法
3284
查看次数

标签 统计

common-lisp ×1

lisp ×1