运算符的输入形式

非字母形式或结构元素的字母的字符在 Wolfram 语言中被当作运算符. Wolfram 语言具有内置的规则来解释所有运算符. 与这些运算符对应的函数可能具有或不具有内嵌赋值或其它规则. 内置意义缺省被定义的情形由下表中 的指示给出.
创建二维盒框的运算符(所有盒框的名称都以反斜线符号开头)只能被用在 \(\) 内部. 下表给出这些在 !() 内的运算符的解释. "盒框的输入" 给出不包含 \! 时的解释.
expr
expri
任意表达式
symb
任意符号
patt
任意模式对象
string
stringi
"cccc" 或字母、字母型及数字序列
filename
string 类似,但可以额外包括下面的字符
有内部定义
在运算符输入形式表中所使用的对象.

运算符优先次序

运算符形式
完整形式
分组
数的表示形式 ( )
符号的表示形式 ( 符号名和上下文 )
字符串的表示形式 ( 字符串 )
e11e12
e21e22
{{e11,e12,},{e21,e22,},}
e11e12
e21e22
Piecewise[{{e11,e12},{e21,e22},}]
expr::stringMessageName[expr,"string"]
expr::string1::string2MessageName[expr,"string1","string2"]
包含 # 的形式 (额外的输入形式)
包含 % 的形式 (额外的输入形式)
包含 _ 的形式 (额外的输入形式)
<<filenameGet["filename"]
Overscript[expr1,expr2]
expr1\&expr2Overscript[expr1,expr2]e\&(e\&e)
Underscript[expr1,expr2]
expr1\+expr2Underscript[expr1,expr2]e\+(e\+e)
Underoverscript[expr1,expr2,expr3]
expr1\+expr2\%expr3Underoverscript[expr1,expr2,expr3]
expr1\&expr2\%expr3Underoverscript[expr1,expr3,expr2]
expr1expr2Subscript[expr1,expr2]e(ee)
expr1\_expr2Subscript[expr1,expr2]e\_(e\_e)
expr1\_expr2\%expr3Power[Subscript[expr1,expr2],expr3]
\!boxes
( boxes 的解释版本)
expr1?expr2PatternTest[expr1,expr2]
expr1[expr2,]expr1[expr2,](e[e])[e]
expr1[[expr2,]]Part[expr1,expr2,](e[[e]])[[e]]
expr1expr2,Part[expr1,expr2,](ee)e
expr1expr2Part[expr1,expr2,](ee)e
expr1::[expr2,]TypeSpecifier[expr1][expr2,](e::[e])::[e]
\*expr
( expr 构建的盒框)
expr++Increment[expr]
expr--Decrement[expr]
++exprPreIncrement[expr]
--exprPreDecrement[expr]
expr1@*expr2Composition[expr1,expr2]e@*e@*e
expr1/*expr2RightComposition[expr1,expr2]e/*e/*e
expr1expr2Application[expr1,expr2]](ee)e
expr1@expr2expr1[expr2]e@(e@e)
expr1 expr2
(不可见应用,输入如 expr1 Esc@Esc expr2)
expr1[expr2]
expr1~expr2~expr3expr2[expr1,expr3](e~e~e)~e~e
expr1/@expr2Map[expr1,expr2]e/@(e/@e)
expr1//@expr2MapAll[expr1,expr2]e//@(e//@e)
expr1@@expr2Apply[expr1,expr2]e@@(e@@e)
expr1@@@expr2MapApply[expr1,expr2]e@@@(e@@@e)
expr!Factorial[expr]
expr!!Factorial2[expr]
exprConjugate[expr]
exprTranspose[expr]
exprConjugateTranspose[expr]
exprConjugateTranspose[expr]
expr'Derivative[1][expr]
expr'''
(n times)
Derivative[n][expr]
expr1<>expr2<>expr3StringJoin[expr1,expr2,expr3]e<>e<>e
expr1^expr2Power[expr1,expr2]e^(e^e)
expr1expr2Power[expr1,expr2]e(ee)
Power[Subscript[expr1,expr2],expr3]
expr1\^expr2\%expr3Power[Subscript[expr1,expr3],expr2]
竖直箭头和向量算符
Sqrt[expr]
\@ exprSqrt[expr]\@(\@ e)
\@ expr\%nPower[expr,1/n]
exprDifferentialD[expr]( e)
expr1expr2D[expr2,expr1]e(ee)
exprDel[expr](e)
expr1expr2DiscreteShift[expr2,expr1]e(ee)
expr1expr2DiscreteRatio[expr2,expr1]e(ee)
expr1expr2DifferenceDelta[expr2,expr1]e(ee)
exprSquare[expr]( e)
expr1 expr2 expr3SmallCircle[expr1,expr2,expr3]e e e
expr1 expr2 expr3CircleDot[expr1,expr2,expr3]e e e
expr1**expr2**expr3NonCommutativeMultiply[expr1,expr2,expr3]e**e**e
expr1expr2expr3Cross[expr1,expr2,expr3]eee
expr1.expr2.expr3Dot[expr1,expr2,expr3]e.e.e
-exprTimes[-1,expr]
+exprexpr
±exprPlusMinus[expr]
exprMinusPlus[expr]
expr1/expr2expr1(expr2)^-1(e/e)/e
expr1÷expr2Divide[expr1,expr2](e÷e)÷e
expr1\/expr2Divide[expr1,expr2](e\/e)\/e
expr1expr2expr3Backslash[expr1,expr2,expr3]eee
expr1expr2expr3Diamond[expr1,expr2,expr3]eee
expr1expr2expr3Wedge[expr1,expr2,expr3]eee
expr1expr2expr3Vee[expr1,expr2,expr3]eee
expr1expr2expr3CircleTimes[expr1,expr2,expr3]eee
expr1·expr2·expr3CenterDot[expr1,expr2,expr3]e·e·e
expr1 expr2 expr3Times[expr1,expr2,expr3]e e e
expr1*expr2*expr3Times[expr1,expr2,expr3]e*e*e
expr1×expr2×expr3Times[expr1,expr2,expr3]e×e×e
expr1expr2expr3Star[expr1,expr2,expr3]eee
e4Product[e4,{e1,e2,e3}]( e)
expr1expr2expr3VerticalTilde[expr1,expr2,expr3]eee
expr1expr2expr3Coproduct[expr1,expr2,expr3]eee
expr1expr2expr3Cap[expr1,expr2,expr3]eee
expr1expr2expr3Cup[expr1,expr2,expr3]eee
expr1 expr2 expr3CirclePlus[expr1,expr2,expr3]eee
expr1 expr2CircleMinus[expr1,expr2](e e) e
expr1expr2Integrate[expr1,expr2] ( e e) e
e3e4Integrate[e3,{e4,e1,e2}] ( e e) e
e1e2e3Integrate[e3,e1e2] ( e)
其他积分算符
e4Sum[e4,{e1,e2,e3}]( e)
e3Limit[e3,e1e2](e)
e3MaxLimit[e3,e1e2](e)
e3MinLimit[e3,e1e2](e)
expr1+expr2+expr3Plus[expr1,expr2,expr3]e+e+e
expr1-expr2expr1+(-1expr2)e-e-e
expr1±expr2PlusMinus[expr1,expr2](e±e)±e
expr1expr2MinusPlus[expr1,expr2](ee)e
expr1expr2Intersection[expr1,expr2]eee
其他交集算符
expr1expr2Union[expr1,expr2]eee
其他并集算符
i;;j;;kSpan[i,j,k]e;;e;;e
expr1==expr2Equal[expr1,expr2]e==e==e
expr1==expr2Equal[expr1,expr2]e==e==e
expr1expr2Equal[expr1,expr2]eee
expr1!= expr2Unequal[expr1,expr2]e!=e!=e
expr1!=expr2Unequal[expr1,expr2]e!=e!=e
其他相等和类似算符
expr1>expr2Greater[expr1,expr2]e>e>e
expr1>=expr2GreaterEqual[expr1,expr2]e>=e>=e
expr1expr2GreaterEqual[expr1,expr2]eee
expr1expr2GreaterEqual[expr1,expr2]eee
expr1<expr2Less[expr1,expr2]e<e<e
expr1<=expr2LessEqual[expr1,expr2]e<=e<=e
expr1expr2LessEqual[expr1,expr2]eee
expr1expr2LessEqual[expr1,expr2]eee
其他排序算符
expr1expr2VerticalBar[expr1,expr2]eee
expr1expr2NotVerticalBar[expr1,expr2]eee
expr1expr2DoubleVerticalBar[expr1,expr2]eee
expr1expr2NotDoubleVerticalBar[expr1,expr2]eee
水平箭头和向量算符
对角箭头算符
expr1===expr2SameQ[expr1,expr2]e===e===e
expr1=!=expr2UnsameQ[expr1,expr2]e=!=e=!=e
expr1expr2Element[expr1,expr2]eee
expr1expr2NotElement[expr1,expr2]eee
expr1expr2Subset[expr1,expr2]eee
expr1expr2Superset[expr1,expr2]eee
其他集合关系算符
expr1expr2ForAll[expr1,expr2]e(ee)
expr1expr2Exists[expr1,expr2]e(ee)
expr1expr2NotExists[expr1,expr2]e(ee)
!exprNot[expr]!(!e)
¬exprNot[expr]¬(¬e)
expr1&&expr2&&expr3And[expr1,expr2,expr3]e&&e&&e
expr1expr2expr3And[expr1,expr2,expr3]eee
expr1expr2expr3Nand[expr1,expr2,expr3]eee
expr1expr2expr3Xor[expr1,expr2,expr3]eee
expr1expr2expr3Xnor[expr1,expr2,expr3]eee
expr1||expr2||expr3Or[expr1,expr2,expr3]e||e||e
expr1expr2expr3Or[expr1,expr2,expr3]eee
expr1expr2expr3Nor[expr1,expr2,expr3]eee
expr1expr2expr3Equivalent[expr1,expr2,expr3]eee
expr1expr2Implies[expr1,expr2]e(ee)
expr1expr2Implies[expr1,expr2]eee
expr1expr2RightTee[expr1,expr2]e(ee)
expr1expr2DoubleRightTee[expr1,expr2]e(ee)
expr1expr2LeftTee[expr1,expr2](ee)e
expr1expr2DoubleLeftTee[expr1,expr2](ee)e
expr1expr2UpTee[expr1,expr2](ee)e
expr1expr2DownTee[expr1,expr2](ee)e
expr1expr2SuchThat[expr1,expr2]e(ee)
expr..Repeated[expr]
expr...RepeatedNull[expr]
expr1|expr2Alternatives[expr1,expr2]e|e|e
symb:exprPattern[symb,expr]
symb:patt:expr Optional[Pattern[symb,patt],expr]
patt:exprOptional[patt,expr]
expr1~~expr2~~expr3StringExpression[expr1,expr2,expr3]e~~e~~e
expr1/;expr2Condition[expr1,expr2](e/;e)/;e
expr1<->expr2TwoWayRule[expr1,expr2]e<->(e<->e)
expr1expr2TwoWayRule[expr1,expr2]e(ee)
expr1expr2Rule[expr1,expr2]e(ee)
expr1expr2Rule[expr1,expr2]e(ee)
expr1:>expr2RuleDelayed[expr1,expr2]e:>(e:>e)
expr1 expr2RuleDelayed[expr1,expr2]e(ee)
expr1/.expr2ReplaceAll[expr1,expr2](e/.e)/.e
expr1//.expr2ReplaceRepeated[expr1,expr2](e//.e)//.e
expr1+=expr2AddTo[expr1,expr2]e+=(e+=e)
expr1-=expr2SubtractFrom[expr1,expr2]e-=(e-=e)
expr1*=expr2TimesBy[expr1,expr2]e*=(e*=e)
expr1/=expr2DivideBy[expr1,expr2]e/=(e/=e)
expr&Function[expr]
expr1expr2Colon[expr1,expr2]eee
expr1//=expr2ApplyTo[expr1,expr2]e//=(e//=e)
expr1//expr2expr2[expr1](e//e)//e
expr1expr2VerticalSeparator[expr1,expr2]eee
expr1expr2Therefore[expr1,expr2]e(ee)
expr1expr2Because[expr1,expr2](ee)e
expr1=expr2Set[expr1,expr2]e=(e=e)
expr1:=expr2SetDelayed[expr1,expr2]e:=(e:=e)
expr1^=expr2UpSet[expr1,expr2]e^=(e^=e)
expr1^:=expr2UpSetDelayed[expr1,expr2]e^:=(e^:=e)
symb/:expr1=expr2TagSet[symb,expr1,expr2]
symb/:expr1:=expr2TagSetDelayed[symb,expr1,expr2]
expr=.Unset[expr]
symb/:expr=.TagUnset[symb,expr]
expr1|->expr2Function[expr1,expr2]e(ee)
expr1expr2Function[expr1,expr2]e(ee)
expr>>filenamePut[expr,"filename"]
expr>>>filenamePutAppend[expr,"filename"]
expr1;expr2;expr3CompoundExpression[expr1,expr2,expr3]
expr1;expr2;CompoundExpression[expr1,expr2,Null]
expr1\`expr2FormBox[expr2,expr1]e\`(e\`e)
运算符输入形式,按递减优先排序. 优先级相同的运算符组合在一起.
特殊输入形式
完整形式
#Slot[1]
#nSlot[n]
#stringSlot["string"]
##SlotSequence[1]
##nSlotSequence[n]
%Out[ ]
%%Out[-2]
%%%
( n times)
Out[-n]
%nOut[n]
_Blank[ ]
_exprBlank[expr]
__BlankSequence[ ]
__exprBlankSequence[expr]
___BlankNullSequence[ ]
___exprBlankNullSequence[expr]
_.Optional[Blank[ ]]
symb_Pattern[symb,Blank[ ]]
symb_exprPattern[symb,Blank[expr]]
symb__Pattern[symb,BlankSequence[ ]]
symb__exprPattern[symb,BlankSequence[expr]]
symb___Pattern[symb,BlankNullSequence[ ]]
symb___exprPattern[symb,BlankNullSequence[expr]]
symb_.Optional[Pattern[symb,Blank[ ]]]
_ :exprOptional[Blank[],expr]
symb_:exprOptional[Pattern[symb,Blank[]],expr]
_head :exprOptional[Blank[head],expr]
symb_head:exprOptional[Pattern[symb,Blank[head]],expr]
额外输入形式,按递减优先排序.

特殊字符

运算符中特殊字符通常具有与所代表函数的名称相对应的名称. 因此字符 具有名称 \[CirclePlus],并得到函数 CirclePlus. 例外的是 \[GreaterSlantEqual]\[LessSlantEqual]\[RoundImplies].
固定匹配运算符中的分隔符具有名称 \[LeftName]\[RightName].
"字符名称列表" 一节给出出现在运算符中特殊字符的一个完整列表.
键盘字符
特殊字符
->\[Rule]
:>\[RuleDelayed]
==\[Equal]
!=\[NotEqual]
键盘字符
特殊字符
>=\[GreaterEqual]
>=\[GreaterSlantEqual]
<=\[LessEqual]
<=\[LessSlantEqual]
具有相同解释的键盘字符与特殊字符.
具有不同解释的一些键盘字符与特殊字符 .

输入形式的优先级和排序

输入形式表按优先级降序来组织. 同一盒框中的输入形式具有相同的优先级. 表中每一页以新盒框开始. 如 "表达式输入的特殊方式" 一节中所讨论的,优先级确定在输入表达式中 Wolfram 语言的分组方式. 一般的规则是,如果 具有比 高的优先级,则 可以被解释为 可以被解释为 .

输入形式的分组

表中的第三列显示单个输入形式或具有相同优先级的几个输入形式多处出现时的分组方式. 例如,a/b/c 被分组为 (a/b)/c ("左相关"),而 a^b^c 被分组为 a^(b^c) ("右相关"). 在象 a+b+c 一样的表达式中不需要分组,因为 Plus 是完全相关的,这由属性 Flat 表示.

积分算子的优先级

诸如 之类的形式具有两个运算子:\[Integral]\[DifferentialD]. 前者优先级高于 ,后者低于 Power. 的优先级确定 何时需要被加上括号, 优先级确定 何时需要被加上括号. 注意,格式 并不包含 ,因此 的行为像普通的前缀运算子.
对与积分运算符相关的二维输入形式的讨论,参见"二维输入形式"一节.

空格与乘法

Wolfram 语言中的空格代表乘法,这与它们在标准的数学记号中所起的作用一样. 此外,Wolfram 语言将相邻且不由空格分离的完整表达式一起相乘.
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
乘法的替代形式.
一个表达式可能有多个含义,如 x!y 既可能是 (x!)*y,也可能是 x*(!y). 选择前一个解释的原因是 FactorialNot 的优先级更高.
单个输入形式内的空格将被忽略. 因而,举例来说,a + b 等价于 a+b. 往往需要在低优先级运算符周围添加空格以增加可读性.
也可以为符号给出一个系数. 它优于任何数字序列.(当使用非10进制时,在系数的末尾和符号名称的开头必须留有空格.)
x^2y,同 x^2 y,表示 (x^2) y
x/2y,同 x/2 y,表示 (x/2) y
xy 是一个符号,而不是 x*y
需要注意的情况.

需要避免的空格

在一个复合算子如 /.=.>= 中,不同字符之间应注意避免插入任何空格. 尽管在某些情况下,这样的空格是允许的,但这些空格很容易产生混淆.
另一种必须避免插入空格的情形是在模式对象 x_ 的字符之间. 如果输入 x_,则 Wolfram 语言将把它解释为 x*_, 而不是单一命名的模式对象 x_.
类似的,也不应在象 x_:value 的模式对象内部插入任何空格.

分隔符

分隔符等价于一个普通键盘空格.

关系运算符

相关运算符可以被混合使用. 如 a>b>=c 的一个表达式可以转换为Inequality[a,Greater,b,GreaterEqual,c],它有效实现计算 (a>b)&&(b>=c). (使用中间 Inequality 形式的原因是为了避免在类似 a>b>=c 的输入被处理时对象需要被计算两次.)

文件名

在引用任何文件名的时候,都应该放到符号 <<>>>>> 后. 如果文件名只包含数字字符和 `/.!-_:$*~?,文件名也可不需要引号. 如果在配对的方括号内没有空格、制表符或换行符,文件名也可不需要引号. 但注意没有用引号给出的文件名后只能是空格、制表符、换行符或字符 )]},以及分号和逗号.