相关疑难解决方法(0)

防止评估Mathematica表达式

在最近的SO问题中,提供了三个不同的答案,每个答案使用不同的方法来防止Equal[]表达的评估.他们是

  1. Defer[]
  2. Unevaluated[]
  3. HoldForm[]

有时我仍然无法在这些选项之间进行选择(并且根据前面提到的问题的答案判断,对于其他人来说,选择并不总是清楚的).有人能否就这三种方法的使用写清楚的说明?


还有其他三个包装 Hold[], HoldPattern[], HoldComplete[],和各种Attributes的功能 HoldAll,HoldFirst,HoldRest和数字版本,NHold*即也可以讨论,如果你想!

编辑

我只是注意到这基本上是旧问题的重复(我已经投了很多,只是忘了...).在1999年Mathematica开发者大会上,这个讲话被接受的答案Defer与之相关,因为它是"6中的新人".Defer与其他评估控制机制相比,它与前端的联系更紧密.它用于创建未评估的输出,如果提供和Input表达式,将对其进行评估.引用文档中心:

Defer [expr]返回一个保持不变的对象,直到它作为Mathematica输入显式提供,并使用Shift + Enter,就地评估等进行评估.

wolfram-mathematica

15
推荐指数
2
解决办法
3689
查看次数

标签 统计

wolfram-mathematica ×1