所以我有一个错误:
EVAL: undefined function P1
到目前为止,我的代码如下。
(defun andexp (a b) (list 'and a b))
(defun orexp (a b) (list 'or a b))
(defun notexp (a) (list 'not a))
(defun evalexp (main-list bind-list)
;first change the bind-list to work with sublis
(setq new-bind-list (list (car bind-list).(cdr bind-list)))
;here will go the looping to check matching variable names
(sublis main-list new-bind-list)
);end of evalexp function
我在这里创建一个表达式:
(setq p1 (andexp 1 (orexp 'a 'b)))
对此进行评估:
(and 1 (or a b))
当我运行下面的代码时,我得到了上面提到的错误。
(evalexp ( p1 '( (a 0) (b 1))))
p1应该包含一个列表,所以我认为它会起作用。这导致了我的问题,我如何将列表作为参数发送到函数中?我做错了,还是别的什么?
答案 0 :(得分:2)
注意错误的额外情况:
(evalexp ( p1 '( (a 0) (b 1))))
应该是
(evalexp p1 '((a 0) (b 1)))