运算符的输入形式
非字母形式或结构元素的字母的字符在 Wolfram 语言中被当作运算符. Wolfram 语言具有内置的规则来解释所有运算符. 与这些运算符对应的函数可能具有或不具有内嵌赋值或其它规则. 内置意义缺省被定义的情形由下表中 ⊲ 的指示给出.
expr 和 expri | 任意表达式 |
symb | 任意符号 |
patt | 任意模式对象 |
string 和 stringi | "cccc" 或字母、字母型及数字序列 |
filename | 与 string 类似,但可以额外包括下面的字符 |
⊲ | 有内部定义 |
运算符优先次序
运算符形式
|
完整形式
|
分组
| ||||||||||
⊲ | ||||||||||||
⊲ | ||||||||||||
⊲ | ||||||||||||
| {{e11,e12,…},{e21,e22,…},…} | ⊲ | ||||||||||
| Piecewise[{{e11,e12},{e21,e22},…}] | ⊲ | ||||||||||
expr::string | MessageName[expr,"string"] | ⊲ | ||||||||||
expr::string1::string2 | MessageName[expr,"string1","string2"] | ⊲ | ||||||||||
⊲ | ||||||||||||
⊲ | ||||||||||||
⊲ | ||||||||||||
<<filename | Get["filename"] | ⊲ | ||||||||||
Overscript[expr1,expr2] | ||||||||||||
expr1\&expr2 | Overscript[expr1,expr2] | e\&(e\&e) | ||||||||||
Underscript[expr1,expr2] | ||||||||||||
expr1\+expr2 | Underscript[expr1,expr2] | e\+(e\+e) | ||||||||||
Underoverscript[expr1,expr2,expr3] | ||||||||||||
expr1\+expr2\%expr3 | Underoverscript[expr1,expr2,expr3] | |||||||||||
expr1\&expr2\%expr3 | Underoverscript[expr1,expr3,expr2] | |||||||||||
expr1expr2 | Subscript[expr1,expr2] | e(ee) | ||||||||||
expr1\_expr2 | Subscript[expr1,expr2] | e\_(e\_e) | ||||||||||
expr1\_expr2\%expr3 | Power[Subscript[expr1,expr2],expr3] | ⊲ | ||||||||||
\!boxes |
(
boxes
的解释版本)
| |||||||||||
expr1?expr2 | PatternTest[expr1,expr2] | ⊲ | ||||||||||
expr1[expr2,…] | expr1[expr2,…] | (e[e])[e] | ⊲ | |||||||||
expr1[[expr2,…]] | Part[expr1,expr2,…] | (e[[e]])[[e]] | ⊲ | |||||||||
expr1〚expr2,…〛 | Part[expr1,expr2,…] | (e〚e〛)〚e〛 | ⊲ | |||||||||
expr1〚expr2〛 | Part[expr1,expr2,…] | (e〚e〛)〚e〛 | ⊲ | |||||||||
expr1::[expr2,…] | TypeSpecifier[expr1][expr2,…] | (e::[e])::[e] | ⊲ | |||||||||
\*expr |
(由
expr
构建的盒框)
| |||||||||||
expr++ | Increment[expr] | ⊲ | ||||||||||
expr-- | Decrement[expr] | ⊲ | ||||||||||
++expr | PreIncrement[expr] | ⊲ | ||||||||||
--expr | PreDecrement[expr] | ⊲ | ||||||||||
expr1@*expr2 | Composition[expr1,expr2] | e@*e@*e | ⊲ | |||||||||
expr1/*expr2 | RightComposition[expr1,expr2] | e/*e/*e | ⊲ | |||||||||
expr1expr2 | Application[expr1,expr2]] | (ee)e | ||||||||||
expr1@expr2 | expr1[expr2] | e@(e@e) | ⊲ | |||||||||
expr1 expr2 | (不可见应用,输入如 expr1 Esc@Esc expr2) | ⊲ | ||||||||||
expr1[expr2] | ||||||||||||
expr1~expr2~expr3 | expr2[expr1,expr3] | (e~e~e)~e~e | ⊲ | |||||||||
expr1/@expr2 | Map[expr1,expr2] | e/@(e/@e) | ⊲ | |||||||||
expr1//@expr2 | MapAll[expr1,expr2] | e//@(e//@e) | ⊲ | |||||||||
expr1@@expr2 | Apply[expr1,expr2] | e@@(e@@e) | ⊲ | |||||||||
expr1@@@expr2 | MapApply[expr1,expr2] | e@@@(e@@@e) | ⊲ | |||||||||
expr! | Factorial[expr] | ⊲ | ||||||||||
expr!! | Factorial2[expr] | ⊲ | ||||||||||
expr | Conjugate[expr] | ⊲ | ||||||||||
expr | Transpose[expr] | ⊲ | ||||||||||
expr | ConjugateTranspose[expr] | ⊲ | ||||||||||
expr | ConjugateTranspose[expr] | ⊲ | ||||||||||
expr' | Derivative[1][expr] | ⊲ | ||||||||||
expr''…' (n times) | Derivative[n][expr] | ⊲ | ||||||||||
expr1<>expr2<>expr3 | StringJoin[expr1,expr2,expr3] | e<>e<>e | ⊲ | |||||||||
expr1^expr2 | Power[expr1,expr2] | e^(e^e) | ⊲ | |||||||||
expr1expr2 | Power[expr1,expr2] | e(ee) | ⊲ | |||||||||
Power[Subscript[expr1,expr2],expr3] | ⊲ | |||||||||||
expr1\^expr2\%expr3 | Power[Subscript[expr1,expr3],expr2] | ⊲ | ||||||||||
竖直箭头和向量算符 | ||||||||||||
Sqrt[expr] | ⊲ | |||||||||||
\@ expr | Sqrt[expr] | \@(\@ e) | ⊲ | |||||||||
\@ expr\%n | Power[expr,1/n] | ⊲ | ||||||||||
expr | DifferentialD[expr] | ( e) | ⊲ | |||||||||
∂expr1expr2 | D[expr2,expr1] | ∂e(∂ee) | ⊲ | |||||||||
∇ expr | Del[expr] | ∇(∇e) | ||||||||||
expr1expr2 | DiscreteShift[expr2,expr1] | e(ee) | ⊲ | |||||||||
expr1expr2 | DiscreteRatio[expr2,expr1] | e(ee) | ⊲ | |||||||||
expr1expr2 | DifferenceDelta[expr2,expr1] | e(ee) | ⊲ | |||||||||
expr | Square[expr] | ( e) | ||||||||||
expr1∘ expr2∘ expr3 | SmallCircle[expr1,expr2,expr3] | e∘ e∘ e | ||||||||||
expr1⊙ expr2⊙ expr3 | CircleDot[expr1,expr2,expr3] | e ⊙ e ⊙ e | ||||||||||
expr1**expr2**expr3 | NonCommutativeMultiply[expr1,expr2,expr3] | e**e**e | ||||||||||
expr1expr2expr3 | Cross[expr1,expr2,expr3] | eee | ⊲ | |||||||||
expr1.expr2.expr3 | Dot[expr1,expr2,expr3] | e.e.e | ⊲ | |||||||||
-expr | Times[-1,expr] | ⊲ | ||||||||||
+expr | expr | ⊲ | ||||||||||
±expr | PlusMinus[expr] | |||||||||||
∓expr | MinusPlus[expr] | |||||||||||
expr1/expr2 | expr1(expr2)^-1 | (e/e)/e | ⊲ | |||||||||
expr1÷expr2 | Divide[expr1,expr2] | (e÷e)÷e | ⊲ | |||||||||
expr1\/expr2 | Divide[expr1,expr2] | (e\/e)\/e | ⊲ | |||||||||
expr1∖expr2∖expr3 | Backslash[expr1,expr2,expr3] | e∖e∖e | ||||||||||
expr1⋄expr2⋄expr3 | Diamond[expr1,expr2,expr3] | e⋄e⋄e | ||||||||||
expr1⋀expr2⋀expr3 | Wedge[expr1,expr2,expr3] | e⋀e⋀e | ||||||||||
expr1⋁expr2⋁expr3 | Vee[expr1,expr2,expr3] | e⋁e⋁e | ||||||||||
expr1⊗expr2⊗expr3 | CircleTimes[expr1,expr2,expr3] | e⊗e⊗e | ||||||||||
expr1·expr2·expr3 | CenterDot[expr1,expr2,expr3] | e·e·e | ||||||||||
expr1 expr2 expr3 | Times[expr1,expr2,expr3] | e e e | ⊲ | |||||||||
expr1*expr2*expr3 | Times[expr1,expr2,expr3] | e*e*e | ⊲ | |||||||||
expr1×expr2×expr3 | Times[expr1,expr2,expr3] | e×e×e | ⊲ | |||||||||
expr1⋆expr2⋆expr3 | Star[expr1,expr2,expr3] | e⋆e⋆e | ||||||||||
e4 | Product[e4,{e1,e2,e3}] | ∏(∏ e) | ⊲ | |||||||||
expr1≀expr2≀expr3 | VerticalTilde[expr1,expr2,expr3] | e≀e≀e | ||||||||||
expr1∐expr2∐expr3 | Coproduct[expr1,expr2,expr3] | e∐e∐e | ||||||||||
expr1⌢expr2⌢expr3 | Cap[expr1,expr2,expr3] | e⌢e⌢e | ||||||||||
expr1⌣expr2⌣expr3 | Cup[expr1,expr2,expr3] | e⌣e⌣e | ||||||||||
expr1⊕ expr2⊕ expr3 | CirclePlus[expr1,expr2,expr3] | e⊕e⊕e | ||||||||||
expr1⊖ expr2 | CircleMinus[expr1,expr2] | (e ⊖ e)⊖ e | ||||||||||
∫ expr1expr2 | Integrate[expr1,expr2] | ∫ (∫ e e) e | ⊲ | |||||||||
e3e4 | Integrate[e3,{e4,e1,e2}] | ∫ (∫ e e) e | ⊲ | |||||||||
∫e1∈e2e3 | Integrate[e3,e1∈e2] | ∫ (∫ e) | ⊲ | |||||||||
其他积分算符 | ||||||||||||
e4 | Sum[e4,{e1,e2,e3}] | ∑(∑ e) | ⊲ | |||||||||
e3 | Limit[e3,e1e2] | (e) | ⊲ | |||||||||
e3 | MaxLimit[e3,e1e2] | (e) | ⊲ | |||||||||
e3 | MinLimit[e3,e1e2] | (e) | ⊲ | |||||||||
expr1+expr2+expr3 | Plus[expr1,expr2,expr3] | e+e+e | ⊲ | |||||||||
expr1-expr2 | expr1+(-1expr2) | e-e-e | ⊲ | |||||||||
expr1±expr2 | PlusMinus[expr1,expr2] | (e±e)±e | ||||||||||
expr1∓expr2 | MinusPlus[expr1,expr2] | (e∓e)∓e | ||||||||||
expr1⋂expr2 | Intersection[expr1,expr2] | e⋂e⋂e | ⊲ | |||||||||
其他交集算符 | ||||||||||||
expr1⋃expr2 | Union[expr1,expr2] | e⋃e⋃e | ⊲ | |||||||||
其他并集算符 | ||||||||||||
i;;j;;k | Span[i,j,k] | e;;e;;e | ⊲ | |||||||||
expr1==expr2 | Equal[expr1,expr2] | e==e==e | ⊲ | |||||||||
expr1==expr2 | Equal[expr1,expr2] | e==e==e | ⊲ | |||||||||
expr1expr2 | Equal[expr1,expr2] | eee | ⊲ | |||||||||
expr1!= expr2 | Unequal[expr1,expr2] | e!=e!=e | ⊲ | |||||||||
expr1!=expr2 | Unequal[expr1,expr2] | e!=e!=e | ⊲ | |||||||||
其他相等和类似算符 | ||||||||||||
expr1>expr2 | Greater[expr1,expr2] | e>e>e | ⊲ | |||||||||
expr1>=expr2 | GreaterEqual[expr1,expr2] | e>=e>=e | ⊲ | |||||||||
expr1≥expr2 | GreaterEqual[expr1,expr2] | e≥e≥e | ⊲ | |||||||||
expr1⩾expr2 | GreaterEqual[expr1,expr2] | e⩾e⩾e | ⊲ | |||||||||
expr1<expr2 | Less[expr1,expr2] | e<e<e | ⊲ | |||||||||
expr1<=expr2 | LessEqual[expr1,expr2] | e<=e<=e | ⊲ | |||||||||
expr1≤expr2 | LessEqual[expr1,expr2] | e≤e≤e | ⊲ | |||||||||
expr1⩽expr2 | LessEqual[expr1,expr2] | e⩽e⩽e | ⊲ | |||||||||
其他排序算符 | ||||||||||||
expr1expr2 | VerticalBar[expr1,expr2] | eee | ||||||||||
expr1expr2 | NotVerticalBar[expr1,expr2] | eee | ||||||||||
expr1∥expr2 | DoubleVerticalBar[expr1,expr2] | e∥e∥e | ||||||||||
expr1∦expr2 | NotDoubleVerticalBar[expr1,expr2] | e∦e∦e | ||||||||||
水平箭头和向量算符 | ||||||||||||
对角箭头算符 | ||||||||||||
expr1===expr2 | SameQ[expr1,expr2] | e===e===e | ⊲ | |||||||||
expr1=!=expr2 | UnsameQ[expr1,expr2] | e=!=e=!=e | ⊲ | |||||||||
expr1∈expr2 | Element[expr1,expr2] | e∈e∈e | ⊲ | |||||||||
expr1∉expr2 | NotElement[expr1,expr2] | e∉e∉e | ⊲ | |||||||||
expr1⊂expr2 | Subset[expr1,expr2] | e⊂e⊂e | ||||||||||
expr1⊃expr2 | Superset[expr1,expr2] | e⊃e⊃e | ||||||||||
其他集合关系算符 | ||||||||||||
∀expr1expr2 | ForAll[expr1,expr2] | ∀e(∀ee) | ⊲ | |||||||||
∃expr1expr2 | Exists[expr1,expr2] | ∃e(∃ee) | ⊲ | |||||||||
∄expr1expr2 | NotExists[expr1,expr2] | ∄e(∄ee) | ||||||||||
!expr | Not[expr] | !(!e) | ⊲ | |||||||||
¬expr | Not[expr] | ¬(¬e) | ⊲ | |||||||||
expr1&&expr2&&expr3 | And[expr1,expr2,expr3] | e&&e&&e | ⊲ | |||||||||
expr1∧expr2∧expr3 | And[expr1,expr2,expr3] | e∧e∧e | ⊲ | |||||||||
expr1⊼expr2⊼expr3 | Nand[expr1,expr2,expr3] | e⊼e⊼e | ⊲ | |||||||||
expr1⊻expr2⊻expr3 | Xor[expr1,expr2,expr3] | e⊻e⊻e | ⊲ | |||||||||
expr1expr2expr3 | Xnor[expr1,expr2,expr3] | eee | ⊲ | |||||||||
expr1expr2expr3 | Or[expr1,expr2,expr3] | eee | ⊲ | |||||||||
expr1∨expr2∨expr3 | Or[expr1,expr2,expr3] | e∨e∨e | ⊲ | |||||||||
expr1⊽expr2⊽expr3 | Nor[expr1,expr2,expr3] | e⊽e⊽e | ⊲ | |||||||||
expr1⧦expr2⧦expr3 | Equivalent[expr1,expr2,expr3] | e⧦e⧦e | ⊲ | |||||||||
expr1expr2 | Implies[expr1,expr2] | e(ee) | ⊲ | |||||||||
expr1⥰expr2 | Implies[expr1,expr2] | e⥰e⥰e | ⊲ | |||||||||
expr1⊢expr2 | RightTee[expr1,expr2] | e⊢(e⊢e) | ||||||||||
expr1⊨expr2 | DoubleRightTee[expr1,expr2] | e⊨(e⊨e) | ||||||||||
expr1⊣expr2 | LeftTee[expr1,expr2] | (e⊣e)⊣e | ||||||||||
expr1⫤expr2 | DoubleLeftTee[expr1,expr2] | (e⫤e)⫤e | ||||||||||
expr1⊥expr2 | UpTee[expr1,expr2] | (e⊥e)⊥e | ||||||||||
expr1⊤expr2 | DownTee[expr1,expr2] | (e⊤e)⊤e | ||||||||||
expr1∍expr2 | SuchThat[expr1,expr2] | e∍(e∍e) | ||||||||||
expr.. | Repeated[expr] | ⊲ | ||||||||||
expr... | RepeatedNull[expr] | ⊲ | ||||||||||
expr1expr2 | Alternatives[expr1,expr2] | eee | ⊲ | |||||||||
symb:expr | Pattern[symb,expr] | ⊲ | ||||||||||
symb:patt:expr | Optional[Pattern[symb,patt],expr] | ⊲ | ||||||||||
patt:expr | Optional[patt,expr] | ⊲ | ||||||||||
expr1~~expr2~~expr3 | StringExpression[expr1,expr2,expr3] | e~~e~~e | ⊲ | |||||||||
expr1/;expr2 | Condition[expr1,expr2] | (e/;e)/;e | ⊲ | |||||||||
expr1<->expr2 | TwoWayRule[expr1,expr2] | e<->(e<->e) | ⊲ | |||||||||
expr1expr2 | TwoWayRule[expr1,expr2] | e(ee) | ⊲ | |||||||||
expr1expr2 | Rule[expr1,expr2] | e(ee) | ⊲ | |||||||||
expr1expr2 | Rule[expr1,expr2] | e(ee) | ⊲ | |||||||||
expr1:>expr2 | RuleDelayed[expr1,expr2] | e:>(e:>e) | ⊲ | |||||||||
expr1 expr2 | RuleDelayed[expr1,expr2] | e(ee) | ⊲ | |||||||||
expr1/.expr2 | ReplaceAll[expr1,expr2] | (e/.e)/.e | ⊲ | |||||||||
expr1//.expr2 | ReplaceRepeated[expr1,expr2] | (e//.e)//.e | ⊲ | |||||||||
expr1+=expr2 | AddTo[expr1,expr2] | e+=(e+=e) | ⊲ | |||||||||
expr1-=expr2 | SubtractFrom[expr1,expr2] | e-=(e-=e) | ⊲ | |||||||||
expr1*=expr2 | TimesBy[expr1,expr2] | e*=(e*=e) | ⊲ | |||||||||
expr1/=expr2 | DivideBy[expr1,expr2] | e/=(e/=e) | ⊲ | |||||||||
expr& | Function[expr] | ⊲ | ||||||||||
expr1∶expr2 | Colon[expr1,expr2] | e∶e∶e | ||||||||||
expr1//=expr2 | ApplyTo[expr1,expr2] | e//=(e//=e) | ⊲ | |||||||||
expr1//expr2 | expr2[expr1] | (e//e)//e | ||||||||||
expr1expr2 | VerticalSeparator[expr1,expr2] | eee | ||||||||||
expr1∴expr2 | Therefore[expr1,expr2] | e∴(e∴e) | ||||||||||
expr1∵expr2 | Because[expr1,expr2] | (e∵e)∵e | ||||||||||
expr1=expr2 | Set[expr1,expr2] | e=(e=e) | ⊲ | |||||||||
expr1:=expr2 | SetDelayed[expr1,expr2] | e:=(e:=e) | ⊲ | |||||||||
expr1^=expr2 | UpSet[expr1,expr2] | e^=(e^=e) | ⊲ | |||||||||
expr1^:=expr2 | UpSetDelayed[expr1,expr2] | e^:=(e^:=e) | ⊲ | |||||||||
symb/:expr1=expr2 | TagSet[symb,expr1,expr2] | ⊲ | ||||||||||
symb/:expr1:=expr2 | TagSetDelayed[symb,expr1,expr2] | ⊲ | ||||||||||
expr=. | Unset[expr] | ⊲ | ||||||||||
symb/:expr=. | TagUnset[symb,expr] | ⊲ | ||||||||||
expr1 ->expr2 | Function[expr1,expr2] | e(ee) | ⊲ | |||||||||
expr1expr2 | Function[expr1,expr2] | e(ee) | ⊲ | |||||||||
expr>>filename | Put[expr,"filename"] | ⊲ | ||||||||||
expr>>>filename | PutAppend[expr,"filename"] | ⊲ | ||||||||||
expr1;expr2;expr3 | CompoundExpression[expr1,expr2,expr3] | ⊲ | ||||||||||
expr1;expr2; | CompoundExpression[expr1,expr2,Null] | ⊲ | ||||||||||
expr1\`expr2 | FormBox[expr2,expr1] | e\`(e\`e) | ⊲ |
特殊输入形式
|
完整形式
|
# | Slot[1] |
#n | Slot[n] |
#string | Slot["string"] |
## | SlotSequence[1] |
##n | SlotSequence[n] |
% | Out[ ] |
%% | Out[-2] |
%%…%
(
n
times)
| Out[-n] |
%n | Out[n] |
_ | Blank[ ] |
_expr | Blank[expr] |
__ | BlankSequence[ ] |
__expr | BlankSequence[expr] |
___ | BlankNullSequence[ ] |
___expr | BlankNullSequence[expr] |
_. | Optional[Blank[ ]] |
symb_ | Pattern[symb,Blank[ ]] |
symb_expr | Pattern[symb,Blank[expr]] |
symb__ | Pattern[symb,BlankSequence[ ]] |
symb__expr | Pattern[symb,BlankSequence[expr]] |
symb___ | Pattern[symb,BlankNullSequence[ ]] |
symb___expr | Pattern[symb,BlankNullSequence[expr]] |
symb_. | Optional[Pattern[symb,Blank[ ]]] |
_ :expr | Optional[Blank[],expr] |
symb_:expr | Optional[Pattern[symb,Blank[]],expr] |
_head :expr | Optional[Blank[head],expr] |
symb_head:expr | Optional[Pattern[symb,Blank[head]],expr] |
特殊字符
运算符中特殊字符通常具有与所代表函数的名称相对应的名称. 因此字符 具有名称 \[CirclePlus],并得到函数 CirclePlus. 例外的是 \[GreaterSlantEqual]、\[LessSlantEqual] 和 \[RoundImplies].
"字符名称列表" 一节给出出现在运算符中特殊字符的一个完整列表.
|
|
|
|
输入形式的优先级和排序
输入形式表按优先级降序来组织. 同一盒框中的输入形式具有相同的优先级. 表中每一页以新盒框开始. 如 "表达式输入的特殊方式" 一节中所讨论的,优先级确定在输入表达式中 Wolfram 语言的分组方式. 一般的规则是,如果 具有比 高的优先级,则 可以被解释为 , 可以被解释为 .
输入形式的分组
表中的第三列显示单个输入形式或具有相同优先级的几个输入形式多处出现时的分组方式. 例如,a/b/c 被分组为 (a/b)/c ("左相关"),而 a^b^c 被分组为 a^(b^c) ("右相关"). 在象 a+b+c 一样的表达式中不需要分组,因为 Plus 是完全相关的,这由属性 Flat 表示.
积分算子的优先级
诸如 之类的形式具有两个运算子:\[Integral] 和 \[DifferentialD]. 前者优先级高于 ,后者低于 Power. 的优先级确定 何时需要被加上括号, 优先级确定 何时需要被加上括号. 注意,格式 并不包含 ,因此 的行为像普通的前缀运算子.
对与积分运算符相关的二维输入形式的讨论,参见"二维输入形式"一节.
空格与乘法
■ x y z ⟶ x*y*z |
■ 2x ⟶ 2*x |
■ 2(x+1) ⟶ 2*(x+1) |
■ c(x+1) ⟶ c*(x+1) |
■ (x+1)(y+2) ⟶ (x+1)*(y+2) |
■ x! y ⟶ x!*y |
■ x!y ⟶ x!*y |
需要避免的空格
分隔符
关系运算符
相关运算符可以被混合使用. 如 a>b>=c 的一个表达式可以转换为Inequality[a,Greater,b,GreaterEqual,c],它有效实现计算 (a>b)&&(b>=c). (使用中间 Inequality 形式的原因是为了避免在类似 a>b>=c 的输入被处理时对象需要被计算两次.)
文件名
在引用任何文件名的时候,都应该放到符号 <<、>> 和 >>> 后. 如果文件名只包含数字字符和 `、/、.、∖、!、-、_、:、$、*、~ 和 ?,文件名也可不需要引号. 如果在配对的方括号内没有空格、制表符或换行符,文件名也可不需要引号. 但注意没有用引号给出的文件名后只能是空格、制表符、换行符或字符 )、]、},以及分号和逗号.