马克西玛(Maxima):建立和加载库的推荐方法是什么?

Gae*_*eul 4 maxima

我想制作一个小的“库”供将来的maxima脚本使用,但是我不确定如何继续(我使用wxMaxima)。千里马的文档覆盖save()load()loadFile()功能,但不提供的例子。因此,我不确定我是否使用正确/最佳方法。我当前基于帖子的解决方案将我的库以* .lisp格式存储。

举一个简单的例子,假设我的库定义了cosSin(x)函数。我打开一个新会话并将此函数定义为

(%i0) cosSin(x) := cos(x) * sin(x);
Run Code Online (Sandbox Code Playgroud)

然后,将其保存到/tmp/目录中的Lisp文件中。

(%i1) save("/tmp/lib.lisp");
Run Code Online (Sandbox Code Playgroud)

然后,我打开一个新的maxima实例并加载该库

(%i0) loadfile("/tmp/lib.lisp");
Run Code Online (Sandbox Code Playgroud)

cosSin(x)现在定义可以称得上

(%i1) cosSin(%pi/4)

(%o1) 1/2
Run Code Online (Sandbox Code Playgroud)

但是,我注意到maxima附带的大量库都是* .mac格式的:该/usr/share/maxima/5.37.2/share/目录包含428 * .mac文件和516 * .lisp文件。这是更好的格式吗?我将如何生成此类文件?

更一般而言,库的保存和加载方式有哪些不同?推荐的方法是什么?

Rob*_*ier 5

通常,人们将所需的功能放在文件名中something.mac,然后load("something.mac");将这些功能加载到Maxima中。

一个文件可以包含许多功能。一个文件可以加载其他文件,因此如果具有somethingA.macsomethingB.mac,则可以具有另一个仅显示的文件load("somethingA.mac"); load("somethingB.mac");

也可以创建Lisp文件并加载它们,但是不需要在Lisp中编写函数。

除非您对编写Lisp函数特别感兴趣,否则我的建议是使用普通的文本编辑器以Maxima语言编写函数并将其放入文件中。另外,我建议您不要使用saveLisp代码将功能保存到文件中。只需使用纯文本编辑器将函数作为Maxima代码输入文件中即可。

查看其中的文件,share以了解其他人对此的看法。我现在正在看share/contrib/ggf.mac,我看到它有一个冗长的注释标题,描述了它的用途-这样的注释总是一个好主意。