2010-11-22 42 views

回答

5

這一個是從Ted Ersek's Mathematica Tricks under "Clever Little Programs"
感謝@TomD作爲指針。

EvaluatePattern[expr_,pattn_]:=expr/.Pattern[p, pattn]:>With[{eval=p},eval/;True] 

In[368]:= test = HoldForm[7 (1 + 2 - 2^2) (8 + 8)]; 
      EvaluatePattern[test, _Plus] //InputForm 

Out[369]= HoldForm[7*-1*16] 

編輯

這似乎與按住[]也行,但我從來不跑了深刻的考驗。

+1

這是在Ted Ersek的Mathematica技巧下的「聰明的小程序」中討論的。 http://www.verbeia.com/mathematica/tips/Tricks.html – tomd 2010-11-23 16:16:28