【发布时间】:2015-08-10 18:50:30
【问题描述】:
这是我应该为 * 和 + 操作实现中缀评估的函数。
(defun calculate(l)
(cond
((eql (cadr l) '+) (+ (car l) (cddr l)))
((eql (cadr l) '*) (- (car l) (cddr l)))
)
)
当我使用列表 '(3 + 4) 运行它时,它给我一个错误,说“(4) 不是数字”。任何想法可能是什么问题?
【问题讨论】:
-
有些函数名称更容易理解:CAR FIRST 更好。 CADR 是更好的第二。 CADDR 是更好的第三。
标签: lisp common-lisp infix-notation clisp infix-operator