當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