控制Mathematica中的评估深度

时间:2012-11-06 13:12:57

标签: wolfram-mathematica evaluation

我想控制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等等)。有更简单/更好的方法吗?我一直在寻找我相当简单的问题的答案,但找不到任何东西。

1 个答案:

答案 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 *)