7
式を受け取り、パターンxと一致するすべてのHeadを評価するレシピを見たのは覚えていますが、一致しないヘッドが評価されていない部分式は残しておきます。私はもうこのレシピを見つけることができません、誰もこれを行う正しい方法を知っていますか?式で特定のヘッドタイプのみを評価していますか?
式を受け取り、パターンxと一致するすべてのHeadを評価するレシピを見たのは覚えていますが、一致しないヘッドが評価されていない部分式は残しておきます。私はもうこのレシピを見つけることができません、誰もこれを行う正しい方法を知っていますか?式で特定のヘッドタイプのみを評価していますか?
これは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]
編集
[]ホールドでも動作するようだが、私は深いテストを実行したことはありません。
これは、Ted ErsekのMathematica Tricksの "Clever Little Programs"で議論されています。 http://www.verbeia.com/mathematica/tips/Tricks.html – tomd
@TomD Updated。たくさんありがとう! –