lisp - 在 maxima 中使用 lisp 代码

标签 lisp common-lisp maxima computer-algebra-systems

我想在 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/

相关文章:

macros - 什么是方案宏?

variables - Lisp 中的未绑定(bind)变量

macros - 发现 Common Lisp 的 "Core"实体和宏

arrays - 创建具有交换行和列的数组的影子数组

lisp - 如何使用 telnet 在低级别与 Swank 服务器进行交互?

wolfram-mathematica - 从 Mathematica 翻译为 maxima

lisp - CCL 突破文件/目录名称中的非法字符?

macros - 有没有办法混合 LISP 的宏 &optional 和 &key 参数?

datetime - 日期和时间(本地时间而不是 UTC)(Maxima)