为什么Mathematica在定义参数时使用下划线?

时间:2012-05-21 16:33:02

标签: wolfram-mathematica mathematica-8

例如,如果我正在定义以下函数

exprod[n_] := Expand[Product[x + i, {i, 1, n}]]

那么为什么变量n之后的下划线是函数定义中必需的?这种风格来自哪里,还是仅限于Mathematica编程语言?

1 个答案:

答案 0 :(得分:19)

下划线来自模式匹配。

x_匹配任何东西,这个东西与函数体中的名称x绑定。

l[x_ * y_] := l[x] + l[y];

然后在l [2 * z]中首先将表达式2 * z与 模式x_ * y_。然后x绑定到2,y绑定到z。 然后评估表达式l [x] + l [y],结果变为 升[2] + L [Z]。

现在说我们要将e的值定义为1。 我们写l [e]:= 1还是l [e_]:= 1?

有人说l(字面上)变量e必须是1。 另一个说l到某事给了1。

http://reference.wolfram.com/mathematica/tutorial/Introduction-Patterns.html