Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > 核心语言 > 表达式 > 计算控制 > HoldAll >

HoldAll

HoldAll
是一个属性,指定一个函数的所有自变量保持不计算的形式.
  • 用户可以使用 Evaluate 以控制方式计算一个 HoldAll 函数的自变量.
  • 即使当一个函数有 HoldAll 属性时,默认情况下,出现在它的自变量中的 Sequence 对象仍然被压平,Unevaluated 包装被剥开,且使用和自变量相关的 upvalue.
In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
许多具有作用域行为的函数都有 HoldAll 属性:
绘制函数列表,不同的函数使用不同的样式:
如果列表结构不明显,则不分别提供样式:
使用 Evaluate 使得列表结构清楚显示:
在列表中不同向量值函数将获得不同的样式:
HoldAllUnevaluated 在计算发生时抑制符号计算:
求一个符号名称的长度,即使它有一个值:
实现您自己的控制结构:
Hold 是一个带有属性 HoldAll 的容器:
在符号上运算的函数通常需要 HoldAll 属性:
没有这个属性,它们在符号值上运算:
类似 Table 的控制结构避免对它们的参数进行计算:
否则,全局值会干扰它们的操作:
Evaluate 强制计算一个 HoldAll 函数的一个参数:
强制执行一个延迟定义的右边的计算:
Unevaluated 临时处理一个函数,并且当作该函数有 HoldAll 属性:
在一个保持不计算的表达式中,Unevaluated 没有清除:
这是计算结果的完全形式:
这是计算前输入的完全形式:
抑制一个纯函数参数的计算:
HoldAll 函数,依然存在序列连接:
使用容器 HoldComplete 抑制这样的转换:
导致这个行为的属性是 HoldAllComplete
替换操作可用于一个保持不计算的表达式中:
在一个保持不计算的表达式中插入:
NHoldAll 保护 N 的参数,否则以正常方式对它们进行计算:
HoldPattern 保护模式不进行计算,但不干扰模式匹配:
版本 1 的新功能
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
格式:   HTML  |  CDF