GetHelpBrowserLocationMetaTag Rest LinkTrail Tags First Null
此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.2)
 /

2.8.14 Mathematica 语言的语法

Mathematica 用各种语法规则去解释输入,将字符串或单元转化为表达式. 由 StandardFormInputForm 使用的规则定义了基本的 Mathematica 语言. 由 TraditionalForm 等其它形式使用的规则遵循同样的原则,但细节上有许多 区别.

Mathematica 语言中的记号类型

当在 Mathematica 中输入文本时,Mathematica 首先把它分解为记号序列, 其中每个记号代表一个语法单元. 例如输入 xx+yy-zzzz 时, Mathematica 将其分解为记号序列 xx, +, y, - zzzz. 这里 xx, yyzzzz 是对应于符号 的记号,+- 是运算符.
运算符最终决定从一个输入得到的表达式的结构. Mathematica 语言涉及几种 一般类型的运算,这些类型的区别在于运算符出现在运算量中的位置.

Mathematica 语言中运算符类型的例子

运算符要从它前后的指定位置找出运算量,当一个字符串中包含 多个运算符时,就要确定哪一个运算符先选择运算量. 如 a*b+c有可能被 解释为(a*b)+ca*(b+c),这依赖于 * 或+哪个先选择其运算量. 为了避免 歧义,Mathematica 指定了每个运算符的优先次序,优先级别高的运算符先挑 选它的运算量. 例如乘号 * 比加号 + 的优先级别高,所以 * 先挑选运算量, a*b+c 被解释成 (a*b)+c , 而不是 a*(b+c).

乘号 * 比加号的优先级高所以两个 Times 都出现在最里层

运算符 // 有相当低的优先级

运算符 a 有较高的优先级

不管所使用运算符的级别高低,通过适当插入括号就可以指定所要 形成的表达式的结构.

插入括号后使 Plus 而不是 Times 出现在最里层

Out[4]//FullForm=

按优先级降低次序排列的运算符概况

像 * 和 + 等运算是从标准的数学用法决定的次序. 一般,设定的次序使在典型 的输入块中能尽量少用括号.

运算符的优先级使得这儿不需要括号

FullForm 显示了所构造表达式的结构

Out[6]//FullForm=

注意这里的第一、第二个形式是相同的,第三个则需要加括号

前缀算子的分组类型

加法是一个平等函数,没有必要分组

Out[8]//FullForm=

幂不是一个平等函数,运算量必须成对分组

Out[9]//FullForm=

Mathematica 语言的语法不仅适用于键盘上能输入的字符,也适用于 Mathematica 支持的特殊字符. 像  ,  Aleph 等字母与通常 的英语字母一样处理,例如可以以符号名的形式出现. 对 Infinity, HBar, Angle 等字母 型的符号也是如 此. 但也有许多特殊字符作为运算符. 例如  UnionPlus 是中缀 算符,而 ¬ 是前缀算符, RightAngleBracket 匹配缀算符.

 是中缀算符

Out[10]//FullForm=

× 是中缀算符,其含义与 * 相同

一些特殊字符形成相当复杂的运算符的元素,例 如  是含有元素 DifferentialD 的复合运算符.

IntegralDifferentialD 形成复合运算符的一部分

Out[12]//FullForm=

这里不需要括号:  ...  的优先级低于乘法

但这里需要括号

Mathematica 中可以用一维字符串输入,也可以用二维单元的形式输入, Mathematica 语言的语法适用于一维结构和二维结构.

上标解释为幂

 是一个二维复合运算符

Sum 是更复杂的二维复合运算符的一部分

Sum 运算符比加号有更高的优先级