当我尝试运行以下代码时,我收到此错误消息
(defun sa (L)
(cond
((equal '+ (car L)) (soma (nth 0 L) (nth 2 L)))
(T (sa (cdr L)))
))
此代码的目标是将两个数字相加(我正在使用的列表中的位置0和2)。 L是使用
定义的列表(setq a (list 1 '+ 2))
;also the soma function
(soma (a b) (+ a b))
我知道这应该创建列表(1 + 2)。我知道问题是L在第一次传递后回来的方式因为等于没有返回true但我不知道如何解决它。有什么想法吗?
答案 0 :(得分:4)
您正在访问错误的元素进行比较,请尝试以下方法:
(equal '+ (car (cdr L)))