我想制作一个小的“库”供我未来的maxima脚本使用,但我不太清楚如何继续(我使用wxMaxima)。 Maxima的文档涵盖了save()
,load()
和loadFile()
函数,但未提供示例。因此,我不确定我是否使用了正确/最好的方式。我目前的解决方案基于this帖子,以* .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文件。这是一种更好的格式吗?我该如何生成这样的文件?
更一般地说,库可以保存和加载的不同方式有哪些?推荐的方法是什么?
答案 0 :(得分:4)
通常人们会将所需的功能放在文件名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
看,我看到它有一个冗长的评论标题描述了它的目的 - 这样的评论总是一个好主意。