EVAL:未定义函数 X

EVAL: undefined function X

我在尝试调用必须 return 的函数时不断收到一些随机错误 二叉树中节点的级别。

这是我的方法

(defun nodeLevel(x index l)
    (cond
        ((null l) nil)
        ((equal (car l) x) index)
        ((equal (cadr l) 1) (nodeLevel ( x (+ index 1) (cddr l))))
        ((equal (cadr l) 2) (nodeLevel ( x (+ index 1) (cddr l))))
        (t nodeLevel(x (+ index 1) (cddddr l)))
    )
)

我是这样称呼它的

(nodeLevel  'D '0 '(A 2 B 0 C 2 D 0 E 0) )

你有多余的括号。当你调用一个函数时,整个调用都在括号中,但参数没有自己的集合。你写了

(nodeLevel (x (+ index 1) (cddr l)))

你的意思可能是

(nodeLevel x (+ index 1) (cddr l))