Mathematica 9 is now available

2.4.7 定义的顺序

Mathematica 中给出一系列定义时,一部分总是比另一部分更一般一些. Mathematica 中的原则是:一般定义在特殊的定义之后使用.这一特点在阶乘 等函数中特别重要,不管输入方式如何,Mathematica 总是把特殊规则 f[1]=1 放在 f[n_] 之前. 这意味着在计算f[n] 时,先测试 f[1],当 f[1] 不能用时再使用一般情况 f[n_] . 所以在计算 f[5] 时,将一直使用一般规则直到终止条件 f[1] 使用了为止.

Mathematica 中定义的处理

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

f[n_] ]的一般定义

特殊情况 f[1] 的定义

Mathematica 将特殊情形放在一般情形之前

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

这些规则没有明确的顺序

Mathematica 按顺序保存这些规则

log[x_ y_] 的一个特例

Mathematica ]的一般定义]的一般规则之前

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



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.