あなたの評価者は、 (あなたが書いた)がそれを見る前に、あなたが確立したルールに従ってIn[26]
書き直しました。 d
ReplaceRepeated
//.
Mathematica のエバリュエータは非常に貪欲で、//.
優先順位がかなり低いため、//.
inの左側の式は次のようIn[26]
に書き直されました。
((b+c)^2/e^2+something)/(tmp-1)
置換ルールが実行される前に。この式には何も含まれていないためd
、置換ルールd->tmp
は適用されません。
いくつかの選択肢があります。
d
a) asd:=tmp
またはd=tmp
which case 評価するための新しい式を書くことができます
(d^2+something)/(d-1)
生産します
(something + tmp^2)/(-1 + tmp)
b)を含む式を変換したいときはいつでも、d
評価によって作成されたの定義を削除し、単純に置換規則を使用できます。d:=a/e
d
Hold[]
c)やなどの関数の定義と使用法、HoldFirst[]
および Mathematica の通常の評価プロセスとその変更方法の両方をカバーするドキュメントの部分を調べることができます。
d) Mathematica の場合と同様に、目的を達成する方法は他にもあります。最適な選択は、何をしようとしているのかによって異なります。
あなたの特定の質問に答えるために、評価のステップ中に発生するたびに d を置き換えたい場合、私は何を間違っていますか? : 書き換えルールを定義d:=a/e
し、セッションでその後評価される式の評価中に試行される一連のルールにそれを入れています。
コメントに応じて編集
d:=a/e
は一時的な置き換えではなく、削除または置き換えられるか、セッションを閉じるまで存続する定義です。一般に、ルールを使用します(あなたの などd->tmp
。もちろん、 Mathematica は変数にルールを割り当てることができるものです。
rule1 = d->a/e
明白な方法でそれらを使用します
expression /. rule1
ルールのリストを定義できます
rule_list = {d->tmp, e->tmp2, f-> tmp3}
等々。