我想制作一个小的“库”供将来的maxima脚本使用,但是我不确定如何继续(我使用wxMaxima)。千里马的文档覆盖save()
,load()
和loadFile()
功能,但不提供的例子。因此,我不确定我是否使用正确/最佳方法。我当前基于此帖子的解决方案将我的库以* .lisp格式存储。
举一个简单的例子,假设我的库定义了cosSin(x)
函数。我打开一个新会话并将此函数定义为
(%i0) cosSin(x) := cos(x) * sin(x);
然后,将其保存到/tmp/
目录中的Lisp文件中。
(%i1) save("/tmp/lib.lisp");
然后,我打开一个新的maxima实例并加载该库
(%i0) loadfile("/tmp/lib.lisp");
将cosSin(x)
现在定义可以称得上
(%i1) cosSin(%pi/4) (%o1) 1/2
但是,我注意到maxima附带的大量库都是* .mac格式的:该/usr/share/maxima/5.37.2/share/
目录包含428 * .mac文件和516 * .lisp文件。这是更好的格式吗?我将如何生成此类文件?
更一般而言,库的保存和加载方式有哪些不同?推荐的方法是什么?
通常,人们将所需的功能放在文件名中something.mac
,然后load("something.mac");
将这些功能加载到Maxima中。
一个文件可以包含许多功能。一个文件可以加载其他文件,因此如果具有somethingA.mac
和somethingB.mac
,则可以具有另一个仅显示的文件load("somethingA.mac"); load("somethingB.mac");
。
也可以创建Lisp文件并加载它们,但是不需要在Lisp中编写函数。
除非您对编写Lisp函数特别感兴趣,否则我的建议是使用普通的文本编辑器以Maxima语言编写函数并将其放入文件中。另外,我建议您不要使用save
Lisp代码将功能保存到文件中。只需使用纯文本编辑器将函数作为Maxima代码输入文件中即可。
查看其中的文件,share
以了解其他人对此的看法。我现在正在看share/contrib/ggf.mac
,我看到它有一个冗长的注释标题,描述了它的用途-这样的注释总是一个好主意。