在maxima中使用lisp代码

Ror*_*ach 4 lisp common-lisp computer-algebra-systems maxima

我想(make-array '(4 3 8))在maxima中使用,这基本上是生成multi-d矩阵,因为我无法找到API来创建包含的多d矩阵array(name,d1,d2...dm).

我可以使用它来执行它,:lisp (make-array '(4 3 8))但我不知道如何将它标记为类似的东西,

arr: :lisp(make-array '(4 3 8))

我还想知道是否可以在maxima函数中使用lisp代码.任何形式的帮助都应得到高度重视.

Rob*_*ier 5

要在Lisp代码中创建一个与之完全相同的命名数组array(name, d1, d2, ..., dm),请写:

(mfuncall '$array name d1 d2 ... dm)
Run Code Online (Sandbox Code Playgroud)

您不能直接在Maxima函数中包含Lisp代码.但是你可以调用Lisp函数.如果命名了lisp函数$foo,那么在Maxima中它是foo; 如果在Lisp中foo,那么在Maxima中就是这样?foo.例如:

:lisp (defun $foo (x) ...)

f(x) := print (foo (x));
Run Code Online (Sandbox Code Playgroud)

顺便说一句,Maxima对数组的处理仍然是一团糟...也许有一天我们会清理它.