Mathematica 语言的语法
Mathematica 用各种语法规则去解释输入,将字符串或框符转化为表达式. 由 StandardForm 和 InputForm 使用的规则定义了基本的 Mathematica 语言. 由 TraditionalForm 等其它形式使用的规则遵循了同样的原则,但细节上有许多区别.
a, xyz,    | 符号 |
"some text", " + " | 字符串 |
| 123.456, 3*^45 | 数字 |
| +, ->, ≠ | 运算符 |
| (*comment*) | 将被忽略的输入 |
Mathematica 语言中的记号类型.
当在 Mathematica 中输入文本时,Mathematica 首先把它分解为记号序列,其中每个记号代表一个语法单元.
例如输入
时,Mathematica 将其分解为记号序列
、
、
、
和
. 这里
、
和
是对应于符号的记号,而
和
是运算符.
运算符最终决定从一个输入得到的表达式的结构. Mathematica 语言涉及几种一般类型的运算符,这些类型的区别在于运算符相对于运算量的位置.
Mathematica 语言.
运算符要从它前后的指定位置找出运算量,当一个字符串中包含多个运算符时,就要确定哪一个运算符先选择运算量.
例如,
有可能被解释为
或者
,取决于是
还是
先选择其运算量.
为了避免歧义,Mathematica 指定了每个运算符的优先级别,优先级别高的运算符先选择它的运算量.
例如,乘号
比加号
的优先级别高,所有它先选择运算量,
被解释为
而不是
.
运算符

的优先级别比

高,因此在两种情况下,
Times 都是最里层的函数.
| Out[1]= |  |
运算符

的优先级别相当低.
| Out[2]= |  |
运算符

的优先级别较高.
| Out[3]= |  |
不管所使用运算符的优先级别高低,通过适当插入括号就可以指定所要形成的表达式的结构.
Out[4]//FullForm= |
| |  |
| 符号名的扩展 | x_,#2,e::s, 等等 |
| 函数应用变量 | e[e],e@@e, 等等 |
| 与幂相关的运算 | √e,e^e, 等等 |
与乘法相关的运算
| e,e/e,e e,ee, 等等 |
| 与加法相关的运算 | e e,e+e,e e, 等等 |
| 关系型运算符 | e==e,e e,e e,e e,e e, 等等 |
| 箭头及向量运算 | e e,e e,e e,e e, 等等 |
| 逻辑运算符 | ee,e&&e,e e,e e, 等等 |
| 模式和规则运算符 | e..,e|e,e->e,e/.e, 等等 |
| 纯函数运算符 | e& |
| 赋值运算符 | e=e,e:=e, 等等 |
| 复合表达式 | e;e |
按优先级别降低次序排列的运算符概况.
在 "运算符的输入形式" 一节的表按优先级别次序,给出了 Mathematica 中全部的运算符的列表. 如
和
的情形相同,大部分次序是由标准数学用法决定的. 一般,设定的次序使在典型的输入块中能尽量少用括号.
| Out[5]= |  |
Out[6]//FullForm= |
| |  |
注意这里的第一、第二个形式是相同的,第三个则需要加括号.
| Out[7]= |  |
| 平等 | x+y+z | x+y+z |
| 左分组 | x/y/z | (x/y)/z |
| 右分组 | x^y^z | x^(y^z) |
前缀运算符的分组类型.
Out[8]//FullForm= |
| |  |
Out[9]//FullForm= |
| |  |
Mathematica 语言的语法不仅适用于键盘上能输入的字符,也适用于 Mathematica 支持的特殊字符.
如
、
和
等字母与通常的英语字母一样处理,例如可以以符号名的形式出现. 对
、
和
等字母型符号也是如此.
但也有许多特殊字符作为运算符,例如
和
为中缀算符,
为前缀算符,
和
为匹配缀算符.

是中缀算符.
Out[10]//FullForm= |
| |  |

是中缀算符,其含义与

相同.
| Out[11]= |  |
一些特殊字符形成相当复杂的运算符的元素. 例如
是含有元素
和
的复合运算符.

和

形成复合运算符的一部分.
Out[12]//FullForm= |
| |  |
| Out[13]= |  |
| Out[14]= |  |
Mathematica 中可以用一维字符串输入,也可以用二维单元的形式输入. Mathematica 语言的语法适用于一维结构和二维结构.
| Out[15]= |  |

是一个二维复合运算符.
| Out[16]= |  |

是更复杂的二维复合运算符的一部分.
| Out[17]= |  |
运算符

的优先级别比

高.
| Out[18]= |  |