我想控制Mathematica中评估的深度。例如,请考虑以下简单代码:
y := 3.x
z := 4.y
v := 5.z
现在,有时当我输入v时,我希望Mathematica用它的值替换z,而不是用它的值替换y(即v = 20 y而不是v = 60 x)。有时我希望Mathematica替换所有变量。我一直在使用Mathematica中的不同功能(例如Hold),但我能找到的唯一方法是使用赋值规则(即y-> 3x等等)。有更简单/更好的方法吗?我一直在寻找我相当简单的问题的答案,但找不到任何东西。
答案 0 :(得分:0)
一种简单的方法是定义函数:
y[x_] := 3. x
z[y_] := 4. y
v[z_] := 5. z
v[z[y]]
(* 20. y *)
v[z[y[x]]]
(* 60. x *)