gpt4 book ai didi

macros - 数学 : Unevaluated vs Defer vs Hold vs HoldForm vs HoldAllComplete vs etc etc

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:10 36 4
gpt4 key购买 nike

我对所有声称以某种方式阻止计算的内置 Mathematica 函数感到困惑:UnevaluatedDeferHold ,以及超过 6 个 Hold* 形式。 Mathematica 文档只是单独解释每个函数,而没有解释您为什么要选择一个或另一个。任何人都可以对所有这些功能提供连贯的解释吗?整件事对我来说似乎是一团糟。将这一切与 Lisp 宏相关联可能是一个不错的起点。

大多数 Mathematica 语言都设计得非常好,但似乎 Wolfram 在这方面真的把自己逼到了墙角。或者我可能会遗漏一些东西。

最佳答案

这些都是非常棘手的结构,很难给出明确的解释;它们不像 Lisp 宏(或者,就此而言,Lisp 的 QUOTEEVAL 之间的关系)那么简单。但是,可以以 notes from Robby Villegas's 1999 talk "Unevaluated Expressions" 的形式进行很好的、冗长的讨论。在 Wolfram 的网站上。

Defer 在那次演讲中被省略了,因为它是 Mathematica 6.0 中的新内容。它很像 HoldForm,只是当它在前端(而不是裸内核)输出时它被剥离,留下一个可用作输入的表达式。如果您想以编程方式构建用户可以编辑和评估的表达式(例如在调色板中),这将非常有用。

关于macros - 数学 : Unevaluated vs Defer vs Hold vs HoldForm vs HoldAllComplete vs etc etc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1616592/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com