Maxima:推荐的制作方法是什么?加载一个库?

时间:2017-02-02 12:49:44

标签: maxima

我想制作一个小的“库”供我未来的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文件。这是一种更好的格式吗?我该如何生成这样的文件?

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

1 个答案:

答案 0 :(得分:4)

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

文件可以包含任意数量的函数。文件可以加载其他文件,因此如果您有somethingA.macsomethingB.mac,那么您可以使用另一个只显示load("somethingA.mac"); load("somethingB.mac");的文件。

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

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

查看share中的文件,了解其他人如何去做。我现在正在share/contrib/ggf.mac看,我看到它有一个冗长的评论标题描述了它的目的 - 这样的评论总是一个好主意。