Mathematica 9 is now available

2.6.2 局部常数

定义局部常数

在模块中可以定义能赋值多次的局部变量,但有时仅需要赋值一次的局部常数. Mathematica 中的 With 结构可以建立局部常数.

定义 t 的全局值

定义把 t 用作局部常数的函

数使用定义w

t 仍然具有它的全局值

与模块中的情况相似,用 With 定义的初始值在 With 执行之前进行计算.

给局部变量赋值的表达式 t+1t 的全局值进行计算

 , 可以将 With 理解为 /. 运算的推广,可适用于 Mathematica 的代码.

使用 x a

替代以后,With 的内容是 a=5, a 得到了全局值

清除 a 的值

在某种意义上,With 类似于局部变量仅赋值一次的 Module 的特殊形式. 用 With 而不用 Module 的主要原因之一是使 Mathematica 程序容易理解. 在模块中 的某一处遇到变量 x 时很可能需要跟踪整个模块的代码来得到 x 在该处的值,而在 With 结构中,只需要观察初始值列表就能得到局部常数的值.
有几个 With 结构时,总是某一个变量最里面的一个起作用. 可以将 ModuleWith 混用. 一般原则是某一变量最里面的 With 起作用.

在嵌套 With 结构中,总是最里的一个起作用

可以将 ModuleWith 结构混用

当名字不重合时,结构内的变量不屏蔽结构外的变量

除过 xbody 在何时计算外,With[ x =   , body]  做法基本类似.然而当表达式body 内部都包含 WithModule 结构时, With 显示特殊的性态. 主要的问题是防止不同 With 结构中的局部常数相互冲突, 或与全局目标冲突,有关细节将在 2.6.3 节讨论.

With 内部的 y 被重新命名以防止它与全局变量冲突



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.