EVAL:未定义的函数X



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

这是我的方法

(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) )

您有额外的括号。当您调用一个函数时,整个调用都在parens中进行,但参数没有自己的集合。你已经写了

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

你的意思可能是

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

最新更新