此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.1)

2.6.9 上下文和程序包

典型的 Mathematica 程序包引入一些能在这个包之外使用的符号. 这些 符号可能与在包中定义的新函数或目标相对应. 约定在一个程序包 中引入的新符号放在名与该程序包的相关的上下文内. 在这个包中阅读时, Mathematica 将这个上下文加在上下文搜索路径$ContextPath 的开头.

在包中阅读以寻找 Pade` 的近似

这个包将它的上下文添加在 $ContextPath 之前

符号 Pade 在程序包设置的上下文中

可以用短名来指代这个符号

在一个程序包中定义的变量的全名往往很长,大部分情况下只需要用它的短名即可, 其原因是在这个程序包中阅读时,它的上下文被加在 $ContextPath 之中,当输入短名后就自动在这个 上下文中进行搜索.
当同一个短名出现在两个不同的程序包中时就比较困难,这时 Mathematica 就警告什么时候在第二个程序包中阅读,它告诉我们哪 一个符号在引入新符号时被屏蔽.

Calculus`Pade` context 中的符号 Pade 被新程序包中的有相同短名的符号所屏蔽

可以通过全名调用被屏蔽的符号

冲突不仅在不同程序包的符号间发生,而且也在程序包的符号与 Mathematica 的进程中引入的符号间发生. 在当前上下文中定义了符号后,这个符号将屏蔽 从程序包中读入的短名相同的符号,其原因是 Mathematica 总是在当前 上下文中寻找符号,然后才在上下文搜索路径中的 上下文中寻找符号.

在当前上下文中定义了一个函数

任何其它名为 Div 的函数将被在当前上下文中的函数屏蔽

这里为向量分析建立了坐标系

从当前上下文中完全删除 Div

这里使用了程序包中的 Div

当不需要的符号屏蔽了所需的符号时,最好的途径是用 Remove[s] 去删除 这个不需要的符号. 有时另一个合适的选择是去重新排列 $ContextPath 中的元素,重新设置 $Context 的值,以便包含所需符号的 上下文先出现.

给出一个程序包集合