好日子,瞭解跟蹤*
當試圖通過使用標準Trace
和TraceScan
命令及其漂亮的視覺表現在最近thread發展到瞭解數學的評價程序,我遇到了一些含糊其行爲。
首先,當我評價
在[1]:=跟蹤並[a + 1,TraceOriginal->真]
我得到
缺貨[ 1] = {a + 1,{Plus},{a},{1},a + 1,1 + a,{Plus},{1},{a},1 + a}
所有子列表都對應於子評估(如文檔中所述)。最後一個表達式1+a
可能與評估結果相對應,儘管在文檔中沒有明確說明。但究竟是什麼意思表達式a+1
和1+a
在列表中間? the standard evaluation sequence對應哪些評估步驟對應?
第二個奇怪的是與TraceScan
。考慮以下內容:
In [1]:= list = {}; TraceScan [AppendTo [list,StyleForm [#,「Input」]] &,(a + 1),_,AppendTo [list,#] &];列表
輸出[1] = {一個+ 1,加,另外,一個,一個,,1,1 +一個,加,另外,,1,一個,一,1 + A,A + 1}
你可以看到,在列表中的最後兩個表達式是1+a
和a+1
。兩者都是(分)評估的結果。但真正的產出是1+a
,所以我不明白爲什麼a+1
在評估鏈的末尾?爲什麼在評估鏈中間沒有a+1
,因爲它是Trace
的情況?這是一個錯誤嗎?
P.S.這些結果轉載於Mathematica 7.0.1和5.2。
我認爲這應該遷移到:http://math.stackexchange.com/ – RobertPitt 2011-04-06 07:03:33
@RobertPitt這個問題不是關於數學。它只與* Mathematica *的內部相關。正如你所看到的,我儘可能使用原始的例子:當'a'未定義時,在* Mathematica *中評估表達式'a + 1'。我正在嘗試理解* Mathematica *內部發生的事情,當我評估這個時。這似乎並不像預期的那麼簡單...... – 2011-04-06 07:55:31
@RobertPitt這是一個常見的誤解。標籤Mathematica是指由Wolfram Research Inc.開發的Mathematica程序。它不等同於_Mathematics_或_math_。另見http://meta.stackexchange.com/q/81152/158668。 – 2011-04-06 08:59:59