此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.1)

2.6.1 模块和局部就量

Mathematica 一般假设变量是全局变量. 即每次使用 x 等名字时,Mathematica 总认为在 调用同一对象. 然而在编程时,不需要将所有变量都作为全局变量. 例如在 两个不同的程序中, x 可用来指代两个不同的变量. 此时,每个程序中的 x 都 必须作为局部变量. 可以用 modules 定义局部变量. 在每个模块中,可以给出 模块中涉及的局部变量列表.

在 Mathematica 中产生模块

定义全局变量,其值为 17

这里 t 在模块内,所以它的处理与全局变量t无关

全局变量t的值还是 17

模块的最常用方法是在自定义函数中建立临时或中间变量. 一定要保证这些变量只是局部的,否则当这些变量名与其它 变量名重合成就会引起麻烦.

中间变量 t 是模块中的局部变量

运行函数 f

全局变量的值还是 17

这里构造了一个建立局部函数 f 的模块

此处局部函数是一般的阶乘

这里 f 是一个推广了的阶乘

在一个模块中定义局部变量时,Mathematica 开始并不对它赋值. 即使 在模块外定义了该变量的全局值,都能以纯符号的方式使用该变量.

这里使用了 t 在前面定义的全局值,故结果是一个数

Length 得到了变量的个数

由于局部变量t没有赋值,因此被当作符号处理,Expand 产生了一个预期的代数结果

对局部变量赋初值

这里指定局部变量 t 的初始值为 u

这里使用了g 的定义

对模块中任何一个变量都可以定义初始值,这些初始值总是在 模块执行之前进行计算. 即使定义了 x 是模块的局部变量,在 赋初始值时可以用全局变量的值.

u 的初始值为全局变量 t 的值

在条件定义中使用局部变量

在定义 /; conditions 时经常需要引入临时变量,并且定义的右端也需 要使用这些临时变量. Mathematica 允许将定义的右端和条件包含在 模块之中.

定义具有条件的函数

Mathematica 在条件和右端项中共用局部变量