我正在尝试在Maxima中进行一些逻辑上的对等,并且我想为此编写一些自定义程序包。我已经对.Mac和.Lisp中的软件包进行了一些实验,到目前为止,.Mac似乎对我来说最直观,但是Lisp在这种情况下可能要强大得多。
例如,我尝试按以下方式在Maxima和Lisp中编写蕴涵评估器:
(defun simp-implies (x y)
(cond
((eq x nil) t)
((and (eq x t) (eq y t)) t)
((and (eq x t) (eq y nil)) nil)
(t (list (list *implies-op* 'simp) x y))))
implies(a, b) := not a or b
现在,当我导入.mac程序包时,可以按预期使用隐含功能,但是当我使用.lisp程序包时,simp-implies只是从'simp'中减去'variable'隐含功能。有人可以解释为什么(如何在maxima中导入lisp函数),还可以告诉我两种语言中哪一种最适合为Maxima编写程序包?谢谢。