1

Mathematicaで評価の深さを制御したい。たとえば、次の簡単なコードについて考えてみます。

y := 3.x
z := 4.y
v := 5.z

ここで、vと入力すると、Mathematicaでzをその値で置き換えたいが、yではなくその値で置き換えたい場合があります(つまり、v =60xではなくv=20 y)。また、Mathematicaですべての変数を置き換えたい場合もあります。私はMathematicaのさまざまな関数(Holdなど)をいじってみましたが、見つけることができる唯一の方法は、割り当てルール(つまり、y-> 3xなど)を使用することです。それを行うためのより簡単でより良い方法はありますか?かなり単純な質問に対する答えを探していましたが、何も見つかりませんでした。

4

1 に答える 1

0

簡単なアプローチは、関数を定義することです。

y[x_] := 3. x
z[y_] := 4. y
v[z_] := 5. z

v[z[y]]
(* 20. y *)

v[z[y[x]]]
(* 60. x *)
于 2012-11-06T13:29:11.217 に答える