Iは、次の関数そしてパラメータを定義するときにMathematicaがアンダースコアを使用するのはなぜですか?例えば
exprod[n_] := Expand[Product[x + i, {i, 1, n}]]
を定義した場合理由である関数の定義に必要な変数nの後に下線、?このスタイルはMathematicaプログラミング言語のどこに由来するのか、それともMathematicaプログラミング言語のみに固有のものなのか?
Iは、次の関数そしてパラメータを定義するときにMathematicaがアンダースコアを使用するのはなぜですか?例えば
exprod[n_] := Expand[Product[x + i, {i, 1, n}]]
を定義した場合理由である関数の定義に必要な変数nの後に下線、?このスタイルはMathematicaプログラミング言語のどこに由来するのか、それともMathematicaプログラミング言語のみに固有のものなのか?
アンダースコアはパターンマッチングに由来します。
x_は何にもマッチしますが、これは関数の本体でxという名前にバインドされています。次に、L [2 * z]は最初の式2 * zは パターンX_ * Y_照合さ
l[x_ * y_] := l[x] + l[y];
。次に、xは2に結合され、yはzに結合される。 そして、式l [x] + l [y]が評価され、結果は l [2] + l [z]になります。
ここで、lの値を1に定義したいとします。 l [e]:= 1またはl [e_]:= 1と書いていますか?
一つは、変数e(文字通り)にlは1 でなければならないことを他の何かにlが、私は、これはコミュニティのwikiになると思います。1.
http://reference.wolfram.com/mathematica/tutorial/Introduction-Patterns.html
ありがとうございました。それは面白い読み物であり、私が探していたものでした。 – ripit
を与えると言っている?と言いますか私は完全にはわからない。 – ripit
[Mathematica用のStackExchangeサイト](http://mathematica.stackexchange.com/)があります。将来の質問をすることを検討してください。 – Verbeia