GetHelpBrowserLocationMetaTag Rest LinkTrail Tags First Null
Mathematica 9 is now available
 /

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 运算符比加号有更高的优先级



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.