当trying模拟评估行为RuleDelayed
我遇到了嵌套Unevaluated
的意外行为。试想一下:嵌套问题无法评估
In[1]:= f[Verbatim[Unevaluated][expr_]] := f[expr]
f[Unevaluated[1 + 1]]
f[[email protected][1 + 1]]
f[[email protected]@Unevaluated[1 + 1]]
f[[email protected]@[email protected][1 + 1]]
Out[2]= f[Unevaluated[1 + 1]]
Out[3]= f[2]
Out[4]= f[Unevaluated[1 + 1]]
Out[5]= f[2]
人们可以看到,只有偶数嵌套Unevaluated
包装的完全去除。为什么?
哇,我真的打你几秒钟的答案=) – 2011-06-08 06:10:02
是啊!一个小时以前的问题很巧合。我总体上更喜欢你的答案。 – 2011-06-08 06:17:09
非常明确的解释,谢谢!两种答案都很好,并且相互补充,但是你对评估者采取的一系列决定形式的解释更加简单和易于记忆。所以我接受你的答案。 – 2011-06-08 07:35:13