MATHEMATICA 教程

定义的顺序

Mathematica 中给出一系列定义时,一部分总是比另一部分更一般一些. Mathematica 中的原则是:一般定义在特殊定义之后使用. 这意味着,规则的特例总是在一般情况之前试用.

这种行为对于 "定义函数" 节中给出的阶乘函数特别重要. 不管输入方式如何,Mathematica 总是把特殊规则 放在 之前. 这意味着,当 Mathematica 在计算形如 f[n] 的表达式时,先测试 ,当它不能用时,再使用一般情况 . 所以,在计算 时,Mathematica 将一直使用一般规则直到"终止条件" 使用了为止.

Mathematica 总是将特殊规则放在一般规则之前.

Mathematica 中定义的处理.

如果 Mathematica 不遵循上述原则,则特殊规则将会被一般规则所"屏蔽". 在阶乘的定义中,如果规则 在规则 之前使用,则 Mathematica 即使在求 时也会用 规则,而 规则永远不会被使用.

的一般定义.
In[1]:=
Click for copyable input
特殊情况 的定义.
In[2]:=
Click for copyable input
Out[2]=
Mathematica 将特殊情形放在一般情形之前.

在像上面给出的阶乘一类的定义中,可以很明显地看出哪一个更一般一些. 但通常给出的规则没有确定的顺序,这时, Mathematica 就按给出的顺序使用它们.

这些规则没有明确的顺序.
In[4]:=
Click for copyable input
Mathematica 按顺序保存这些规则.
的一个特例.
In[6]:=
Click for copyable input
Mathematica 将特殊规则放在一般规则之前.

尽管在许多情况下,Mathematica 能判断哪一个规则更一般一些,但总有些例外. 例如,在两个含有 的规则中,就无法确定哪一个更一般,事实上也没有明确的顺序. 在顺序不清楚时,Mathematica 总是按输入顺序保存规则.

New to Mathematica? Find your learning path »
Have a question? Ask support »