我想在 maxima 中使用 (make-array '(4 3 8))
这基本上是为了生成多维矩阵,因为我找不到创建多维矩阵的 API包括 array(name,d1,d2...dm)
。
我可以使用 :lisp (make-array '(4 3 8))
来执行它,但我不知道如何将它标记为类似
arr: :lisp(make-array '(4 3 8))
我还想知道是否可以在 maxima 函数中使用 lisp 代码。任何形式的帮助都将受到高度重视。
最佳答案
要在 Lisp 代码中创建一个与 array(name, d1, d2, ..., dm)
完全相同的命名数组,请编写:
(mfuncall '$array name d1 d2 ... dm)
您不能将 Lisp 代码直接包含在 Maxima 函数中。但是你可以调用 Lisp 函数。如果 lisp 函数被命名为 $foo
,那么在 Maxima 中它就是 foo
;如果在 Lisp 中它是 foo
,那么在 Maxima 中它是 ?foo
。例如:
:lisp (defun $foo (x) ...)
f(x) := print (foo (x));
顺便说一下,Maxima 对数组的处理仍然一团糟……也许有一天我们会把它清理干净。
关于lisp - 在 maxima 中使用 lisp 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22172847/