Итак, у меня ошибка:
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 должен содержать список, поэтому я предположил, что он будет работать. Это приводит к моему вопросу о том, как я должен отправлять списки в качестве параметров в функцию? Я делаю это неправильно или это что-то еще?