【问题标题】:Controlling evaluation depth in Mathematica在 Mathematica 中控制评估深度
【发布时间】:2012-11-06 21:35:39
【问题描述】:

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

【问题讨论】:

    标签: wolfram-mathematica evaluation


    【解决方案1】:

    一个简单的方法是定义函数:

    y[x_] := 3. x
    z[y_] := 4. y
    v[z_] := 5. z
    
    v[z[y]]
    (* 20. y *)
    
    v[z[y[x]]]
    (* 60. x *)
    

    【讨论】:

    • 非常感谢,我知道应该有一个简单的解决方案。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多