Mathematica 9 is now available

A.4.2 非标准的参数计算


Mathematica中有大量内嵌函数,这些函数以独特的方式对它们的参数计算.控制结构While就是一个例子.该符号 While具有HoldAll属性.因此,While的参数不按标准求值过程求值.实际上,While的内部代码以特殊的方式对参数计算.对于 While而言,该代码重复计算同一个值,以便实现循环.

以特殊方式对参数计算的内部函数

逻辑运算

在一个形如 && && 的表达式中, 按顺序计算.只要一发现某个 False,求值就被中止,并且False作为结果返回.这意味着你能够利用 来表示一个程序中的不同分支,以实现当且仅当特定条件满足时才对一特殊分支进行计算.
Or函数很像And;只要它一发现某个参数为True就返回True.而Xor却总是对它所有的参数计算.

迭代函数

一个迭代函数,例如 Do[f,  i, imin, imax ],按如下顺序计算:

• 对指定的迭代进行计算.如果它不是  i, imin, imax 的形式,该求值将停止.
• 使迭代变量i成为局部变量,从而有效地使用Block.
• 使用iminimax确定将赋给迭代变量 i的值序列.
• 依次把迭代变量赋给每一个值,同时对f计算.
• 清除赋给i的局部值.

如果迭代变量不止一个,则对每一个变量和所有过程变量的每一个值依次进行同样的过程.
除非另外指明,只有当一个具体的值分配给if 才被计算.你也可以使用Evaluate[f]f 立刻被计算,而不是只在 i 被赋给一个具体的值以后才计算.

赋值

赋值的左边只被部分计算.

• 若左边是一个符号,则不进行计算.

• 若左边是一个没有任何属性的函数,函数的参数被计算,而函数本身不被计算.
其右边在直接赋值情形下(=)被计算;而延迟赋值情形下(:=)不被计算.
出现在赋值左边的任何形式为HoldPattern[expr]的子表达式不被计算,而是在赋值进行之前用expr的非计算形式替换.



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.