2.3.8 变量个数不确定的函数当 仅代表恰有两个变量的函数. 有时还需要建立具有任意数目的自变量的函数,这可以通过多重空位来实现. 一个空位 x_ 表示一个表达式,两个空位 x__ 表示多个表达式. x__ 表示一系列表达式 (a, b, c).
Out[1]= |  |
从 h 中挑选重复元素的更复杂的定义 应用这一定义找出两对元素
Out[3]= |  |
双空位 "__ " 表示一个或多个表达式的序列,三空位 " ___ " 表示零个或多个表达式序列. 在使用三空位时很容易导致死循环这类错误. 例如定义 p[x_, y___] := p[x]q[y], 接下来输入 p[a] 将进入死循环状态,此时y将反复地与零元素序列进行匹配. 所以要尽量地少用三空位. 不同类型的模式 像 Plus 和 Times 这样具有结合性的函数,Mathematica 自动处理变量的数目,不需要 使用 "双空位" 和 "三空位". 在使用多重空位时,对特定的表达式有不同的匹配方式. 一般说来, Mathematica 总是先将模式中的第一个多空位与变量的最短序列匹配. 这里给出了所有可能的匹配
Out[4]= |  |
用 ReplaceList 可以列举出模式的匹配方式
Out[5]= |  |
此处列举出了至少有一个元 素的子序列
Out[6]= |  |
|