【发布时间】:2010-12-09 15:37:07
【问题描述】:
我对所有声称以某种方式阻止评估的 Mathematica 内置函数感到困惑:Unevaluated、Defer、Hold,以及超过半打 Hold* 的形式。 Mathematica 文档只是单独解释了每个函数,而没有解释为什么要选择其中一个。任何人都可以对所有这些功能提供一个连贯的解释吗?整件事对我来说似乎是一团糟。将这一切与 Lisp 宏联系起来可能是一个不错的起点。
大多数 Mathematica 语言的设计都非常出色,但 Wolfram 似乎真的在这方面把自己画到了一个角落。或者我可能会遗漏一些东西。
【问题讨论】:
标签: macros lisp language-design wolfram-mathematica