0
我试图让这个函数在输入 时显示文字expr2和expr1。输入的数据是(+ x y)的形式。为Lisp函数返回参数
(DEFUN deriv (expr var) ; function name and arguments
(COND ((ATOM expr) ; check for atomic expression (variable or constant)
(IF (EQL expr var)
1
0
))
((EQL (FIRST expr) '+) (deriv-add (SECOND expr) (THIRD expr) var))
((EQL (FIRST expr) '-) (deriv-minus (SECOND expr) (THIRD expr) var))
((EQL (FIRST expr) '*) (deriv-multi (SECOND expr) (THIRD expr) var))
((EQL (FIRST expr) '/) (deriv-divide (SECOND expr) (THIRD expr) var))
(T (ERROR "UNKNOWN arithmetic operator"))
)
)
(DEFUN deriv-multi (expr1 expr2 var)
(LIST '+ (* (deriv expr1 var) expr2) (* expr1 (deriv expr2 var)))
)
(SETQ e2 '(* (+ x y) (+ y 7)))
(DERIV e2 'x)
我添加了更多的代码,以更好地展示它试图用于什么。 – Brian
@Brian:expr1周围的圆括号是什么? –
对不起,这是一个错误。我删除了它们。 – Brian