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

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 总是按输入顺序保存规则.