我通过阅读Maxima手册学习。
Maxima有许多内置函数和全局变量。 我担心覆盖已经存在的同名函数或变量的可能性。
有没有一种方便的方法来避免Maxima中的名称冲突?
答案 0 :(得分:1)
如果你在谈论命名空间, - 不,我从来没有听说过Maxima中的命名空间。
解决问题的最简单方法是为用户定义的变量和函数编写前缀
另一个选项是通过describe(FUNCTIONNAME)
检查function \ variable是否已存在。如果它打印文本,则函数是预定义的=)
代码示例:
a:1;
b:2;
map:3;
map(describe, values);
(%o25) 1
(%o26) 2
(%o27) 3
No exact match found for topic a.
Try ?? a (inexact match) instead.
No exact match found for topic b.
Try ?? b (inexact match) instead.
Function: map (<f>, <expr_1>, ..., <expr_n>)
Returns an expression whose leading operator is the same as that
....
....
There are also some inexact matches for map.
Try ?? map to see them.
(%o28) [false,false,true]
答案 1 :(得分:1)
http://sourceforge.net/p/maxima/code/ci/master/tree/share/contrib/namespaces
(%i1) load("namespaces")$
(%i2) in_namespace(foo);
(%o2) #<PACKAGE "$FOO">
(%i3) z: 42;
(%o3) 42
(%i4) in_namespace(maxima)$
(%i5) z;
(%o5) z
(%i6) foo|z;
(%o6) 42