在Maxima中编写用于评估逻辑的软件包

时间:2019-06-17 07:49:44

标签: lisp common-lisp maxima

我正在尝试在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编写程序包?谢谢。

0 个答案:

没有答案