2012-05-21 33 views
13

例如,如果我被定義下面的函數爲什麼Mathematica在定義參數時使用下劃線?

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

那麼,爲什麼是變量n之後下劃線,必要在函數定義?這種風格來自哪裏,還是隻針對Mathematica編程語言?

+0

我想這將是社會維基?我不完全確定。 – ripit

+0

現在有一個[僅供Mathematica使用的StackExchange站點](http://mathematica.stackexchange.com/)。請考慮在那裏提出未來的問題。 – Verbeia

回答

16

下劃線來自模式匹配。

x_匹配任何東西,並且這個任何東西都綁定到函數體中的名字x。

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

然後,在升[2 * Z]第一表達式2 * Z抵靠 圖案X_ * Y_匹配。然後x被綁定到2並且y被綁定到z。 然後評估表達式l [x] + l [y],並且結果變成 l [2] + 1 [z]。

現在說我們想定義e上的值爲1. 我們寫出l [e]:= 1還是l [e_]:= 1?

一種說法是:l至(字面)變量e必須爲1 另說,L到的東西給1

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

+2

非常感謝。這是一個有趣的閱讀和我正在尋找的。 – ripit

相關問題