我被搞糊涂了所有内置在声称为防止评价在某种程度上数学函数:Unevaluated
,Defer
,Hold
,以及超过一半的形式的打Hold*
.Mathematica文档只是单独解释了每个函数,但没有解释为什么要选择其中一个函数.任何人都可以对所有这些功能提供一致的解释吗?整件事对我来说似乎是一个令人费解的混乱.将它全部与Lisp宏相关可能是一个很好的起点.
大多数Mathematica语言都设计得非常好,但看起来Wolfram真的把自己描绘成了这方面的一个角落.或者我可能会遗漏一些东西.