Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica >

演算子の入力形

文字あるいは文字のようなもの,さらに構造的な要素を Mathematica は演算子として扱う.Mathematica はこれらを演算子として解釈する組込み規則を持っている.しかし,これらの演算子に対応する関数のすべてに組込みの評価規則が存在するとは限らない.組込みの評価規則が存在する関数には,以下の表においてマーク(LeftTriangle)が付いている.
二次元ボックスを作る演算子(名前の先頭にバックスラッシュが付いている)は,\(...\)の中でのみ使用できる.以下の表ではこれらの演算子が\!\(...\)中にある場合の解釈について述べている.「ボックスの入力」には\!がないときの解釈が記述されている.
exprおよびexpri任意の式
symb任意のシンボル
patt任意のパターンオブジェクト
stringおよびstringi文字,文字的な記号,数字等の文字列(例:"cccc"
filenamestring と同じであるが,次に示す文字も使用可能である
LeftTriangle組込みの評価規則が存在する

演算子の入力形の表において使われるオブジェクト

演算子の形完全形グループ化
数を表す形(を参照)LeftTriangle
記号を表す形(シンボル名とコンテキストを参照)LeftTriangle
文字列を表す形(文字列を参照)LeftTriangle
e11e12...
e21e22...
...
{{e11,e12,...},{e21,e22,...},...}LeftTriangle
Piecewise
e11e12
e21e22
...
Piecewise[{{e11,e12},{e21,e22},...}]LeftTriangle
expr::stringMessageName[expr,"string"]LeftTriangle
expr::string1::string2MessageName[expr,"string1","string2"]LeftTriangle
#を含む形(補助的な入力形を参照)LeftTriangle
%を含む形(補助的な入力形を参照)LeftTriangle
_を含む形(補助的な入力形を参照)LeftTriangle
<<filenameGet["filename"]LeftTriangle
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]LeftTriangle
\!boxesboxes の解釈形)
expr1?expr2PatternTest[expr1,expr2] LeftTriangle
expr1[expr2,...]expr1[expr2,...](e[e])[e]LeftTriangle
expr1[[expr2,...]]Part[expr1,expr2,...](e[[e]])[[e]]LeftTriangle
expr1LeftDoubleBracketexpr2,...RightDoubleBracketPart[expr1,expr2,...](eLeftDoubleBracketeRightDoubleBracket)LeftDoubleBracketeRightDoubleBracketLeftTriangle
expr1LeftDoubleBracketexpr2RightDoubleBracketPart[expr1,expr2,...](eLeftDoubleBracketeRightDoubleBracket)LeftDoubleBracketeRightDoubleBracketLeftTriangle
\*exprexpr から構成されたボックス)
expr++Increment[expr]LeftTriangle
expr--Decrement[expr]LeftTriangle
++exprPreIncrement[expr]LeftTriangle
--exprPreDecrement[expr]LeftTriangle
expr1@expr2expr1[expr2]e@(e@e)LeftTriangle
expr1 expr2(不可視の適用,expr1 Esc @ Esc expr2として入力)LeftTriangle
expr1[expr2]
expr1~expr2~expr3expr2[expr1,expr3](e~e~e)~e~eLeftTriangle
expr1/@expr2Map[expr1,expr2]e/@(e/@e)LeftTriangle
expr1//@expr2MapAll[expr1,expr2]e//@(e//@e)LeftTriangle
expr1@@expr2Apply[expr1,expr2]e@@(e@@e)LeftTriangle
expr1@@@expr2Apply[expr1,expr2,{1}]e@@@(e@@@e)LeftTriangle
expr!Factorial[expr]LeftTriangle
expr!!Factorial2[expr]LeftTriangle
expr*Conjugate[expr]LeftTriangle
exprTranspose[expr]LeftTriangle
exprConjugateTranspose[expr]LeftTriangle
exprConjugateTranspose[expr]LeftTriangle
expr'Derivative[1][expr]LeftTriangle
expr''...' (n 回)Derivative[n][expr]LeftTriangle
expr1<>expr2<>expr3StringJoin[expr1,expr2,expr3]e<>e<>eLeftTriangle
expr1^expr2Power[expr1,expr2]e^(e^e)LeftTriangle
expr1expr2Power[expr1,expr2]e(ee)LeftTriangle
Power[Subscript[expr1,expr2],expr3]LeftTriangle
expr1\^expr2\%expr3Power[Subscript[expr1,expr3],expr2]LeftTriangle
垂直矢印とベクトル操作
Sqrt[expr]LeftTriangle
\@ exprSqrt[expr]\@(\@ e)LeftTriangle
\@ expr\%nPower[expr,1/n]LeftTriangle
Integral expr1DifferentialD expr2Integrate[expr1,expr2]Integral (Integral eDifferentialD e)DifferentialD eLeftTriangle
e3DifferentialDe4Integrate[e3,{e4,e1,e2}]Integral (Integral eDifferentialD e)DifferentialD eLeftTriangle
その他の積分演算子
PartialDexpr1expr2D[expr2,expr1]PartialDe(PartialDee)LeftTriangle
Del exprDel[expr]Del(Dele)
DiscreteShiftexpr1expr2DiscreteShift[expr2,expr1]DiscreteShifte(DiscreteShiftee)LeftTriangle
DiscreteRatioexpr1expr2DiscreteRatio[expr2,expr1]DiscreteRatioe(DiscreteRatioee)LeftTriangle
DifferenceDeltaexpr1expr2DifferenceDelta[expr2,expr1]DifferenceDeltae(DifferenceDeltaee)LeftTriangle
Square exprSquare[expr]Square(Square e)
expr1SmallCircle expr2SmallCircle expr3SmallCircle[expr1,expr2,expr3]eSmallCircle eSmallCircle e
expr1CircleDot expr2CircleDot expr3CircleDot[expr1,expr2,expr3]e CircleDot e CircleDot e
expr1**expr2**expr3NonCommutativeMultiply[expr1,expr2,expr3]e**e**e
expr1Crossexpr2Crossexpr3Cross[expr1,expr2,expr3]eCrosseCrosseLeftTriangle
expr1.expr2.expr3Dot[expr1,expr2,expr3]e.e.eLeftTriangle
-exprTimes[-1,expr]LeftTriangle
+exprexprLeftTriangle
±exprPlusMinus[expr]
MinusPlusexprMinusPlus[expr]
expr1/expr2expr1(expr2)^-1(e/e)/eLeftTriangle
expr1÷expr2Divide[expr1,expr2](e÷eeLeftTriangle
expr1\/expr2Divide[expr1,expr2](e\/e)\/eLeftTriangle
expr1\expr2\expr3Backslash[expr1,expr2,expr3]e\e\e
expr1Diamondexpr2Diamondexpr3Diamond[expr1,expr2,expr3]eDiamondeDiamonde
expr1Wedgeexpr2Wedgeexpr3Wedge[expr1,expr2,expr3]eWedgeeWedgee
expr1Veeexpr2Veeexpr3Vee[expr1,expr2,expr3]eVeeeVeee
expr1CircleTimesexpr2CircleTimesexpr3CircleTimes[expr1,expr2,expr3]eCircleTimeseCircleTimese
expr1CenterDotexpr2CenterDotexpr3CenterDot[expr1,expr2,expr3]eCenterDoteCenterDote
expr1 expr2 expr3Times[expr1,expr2,expr3]e e eLeftTriangle
expr1*expr2*expr3Times[expr1,expr2,expr3]e*e*eLeftTriangle
expr1×expr2×expr3Times[expr1,expr2,expr3]e×e×eLeftTriangle
expr1Starexpr2Starexpr3Star[expr1,expr2,expr3]eStareStare
e4Product[e4,{e1,e2,e3}]Product(Product e)LeftTriangle
expr1VerticalTildeexpr2VerticalTildeexpr3VerticalTilde[expr1,expr2,expr3]eVerticalTildeeVerticalTildee
expr1Coproductexpr2Coproductexpr3Coproduct[expr1,expr2,expr3]eCoproducteCoproducte
expr1Capexpr2Capexpr3Cap[expr1,expr2,expr3]eCapeCape
expr1Cupexpr2Cupexpr3Cup[expr1,expr2,expr3]eCupeCupe
expr1CirclePlus expr2CirclePlus expr3CirclePlus[expr1,expr2,expr3]eCirclePluseCirclePluse
expr1CircleMinus expr2CircleMinus[expr1,expr2](e CircleMinus e)CircleMinus e
e4Sum[e4,{e1,e2,e3}]Sum(Sum e)LeftTriangle
expr1+expr2+expr3Plus[expr1,expr2,expr3]e+e+eLeftTriangle
expr1-expr2expr1+(-1expr2)(e-e)-eLeftTriangle
expr1±expr2PlusMinus[expr1,expr2](e±ee
expr1MinusPlusexpr2MinusPlus[expr1,expr2](eMinusPluse)MinusPluse
expr1Intersectionexpr2Intersection[expr1,expr2]eIntersectioneIntersectioneLeftTriangle
その他の積集合演算子
expr1Unionexpr2Union[expr1,expr2]eUnioneUnioneLeftTriangle
その他の和集合演算子
i;;j;;kSpan[i,j,k]e;;e;;eLeftTriangle
expr1Equalexpr2Equal[expr1,expr2]eEqualeEqualeLeftTriangle
expr1Equalexpr2Equal[expr1,expr2]eEqualeEqualeLeftTriangle
expr1LongEqualexpr2Equal[expr1,expr2]eLongEqualeLongEqualeLeftTriangle
expr1NotEqual expr2Unequal[expr1,expr2]eNotEqualeNotEqualeLeftTriangle
expr1NotEqualexpr2Unequal[expr1,expr2]eNotEqualeNotEqualeLeftTriangle
その他の方程式・類似演算子
expr1>expr2Greater[expr1,expr2]e>e>eLeftTriangle
expr1>=expr2GreaterEqual[expr1,expr2]e>=e>=eLeftTriangle
expr1expr2GreaterEqual[expr1,expr2]eeeLeftTriangle
expr1GreaterSlantEqualexpr2GreaterEqual[expr1,expr2]eGreaterSlantEqualeGreaterSlantEqualeLeftTriangle
expr1<expr2Less[expr1,expr2]e<e<eLeftTriangle
expr1<=expr2LessEqual[expr1,expr2]e<=e<=eLeftTriangle
expr1expr2LessEqual[expr1,expr2]eeeLeftTriangle
expr1LessSlantEqualexpr2LessEqual[expr1,expr2]eLessSlantEqualeLessSlantEqualeLeftTriangle
その他の順序付け演算子
expr1|expr2VerticalBar[expr1,expr2]e|e|e
expr1NotVerticalBarexpr2NotVerticalBar[expr1,expr2]eNotVerticalBareNotVerticalBare
expr1DoubleVerticalBarexpr2DoubleVerticalBar[expr1,expr2]eDoubleVerticalBareDoubleVerticalBare
expr1NotDoubleVerticalBarexpr2NotDoubleVerticalBar[expr1,expr2]eNotDoubleVerticalBareNotDoubleVerticalBare
水平矢印とベクトル操作演算子
対角矢印演算子
expr1SameQexpr2SameQ[expr1,expr2]eSameQeSameQeLeftTriangle
expr1UnsameQexpr2UnsameQ[expr1,expr2]eUnsameQeUnsameQeLeftTriangle
expr1Elementexpr2Element[expr1,expr2]eElementeElementeLeftTriangle
expr1NotElementexpr2NotElement[expr1,expr2]eNotElementeNotElementeLeftTriangle
expr1Subsetexpr2Subset[expr1,expr2]eSubseteSubsete
expr1Supersetexpr2Superset[expr1,expr2]eSuperseteSupersete
その他の集合関係演算子
ForAllexpr1expr2ForAll[expr1,expr2]ForAlle(ForAllee)LeftTriangle
Existsexpr1expr2Exists[expr1,expr2]Existse(Existsee)LeftTriangle
NotExistsexpr1expr2NotExists[expr1,expr2]NotExistse(NotExistsee)
!exprNot[expr]!(!e)LeftTriangle
¬exprNot[expr]¬(¬e)LeftTriangle
expr1&&expr2&&expr3And[expr1,expr2,expr3]e&&e&&eLeftTriangle
expr1Andexpr2Andexpr3And[expr1,expr2,expr3]eAndeAndeLeftTriangle
expr1Nandexpr2Nandexpr3Nand[expr1,expr2,expr3]eNandeNandeLeftTriangle
expr1Xorexpr2Xorexpr3Xor[expr1,expr2,expr3]eXoreXoreLeftTriangle
expr1Xnorexpr2Xnorexpr3Xnor[expr1,expr2,expr3]eXnoreXnoreLeftTriangle
expr1||expr2||expr3Or[expr1,expr2,expr3]e||e||eLeftTriangle
expr1Orexpr2Orexpr3Or[expr1,expr2,expr3]eOreOreLeftTriangle
expr1Norexpr2Norexpr3Nor[expr1,expr2,expr3]eNoreNoreLeftTriangle
expr1Equivalentexpr2Equivalentexpr3Equivalent[expr1,expr2,expr3]eEquivalenteEquivalenteLeftTriangle
expr1Impliesexpr2Implies[expr1,expr2]eImplies(eImpliese)LeftTriangle
expr1RoundImpliesexpr2Implies[expr1,expr2]eRoundImplieseRoundImplieseLeftTriangle
expr1RightTeeexpr2RightTee[expr1,expr2]eRightTee(eRightTeee)
expr1DoubleRightTeeexpr2DoubleRightTee[expr1,expr2]eDoubleRightTee(eDoubleRightTeee)
expr1LeftTeeexpr2LeftTee[expr1,expr2](eLeftTeee)LeftTeee
expr1DoubleLeftTeeexpr2DoubleLeftTee[expr1,expr2](eDoubleLeftTeee)DoubleLeftTeee
expr1SuchThatexpr2SuchThat[expr1,expr2]eSuchThat(eSuchThate)
expr..Repeated[expr]LeftTriangle
expr...RepeatedNull[expr]LeftTriangle
expr1|expr2Alternatives[expr1,expr2]e|e|eLeftTriangle
symb:exprPattern[symb,expr]LeftTriangle
patt:exprOptional[patt,expr]LeftTriangle
expr1~~expr2~~expr3StringExpression[expr1,expr2,expr3]e~~e~~eLeftTriangle
expr1/;expr2Condition[expr1,expr2](e/;e)/;eLeftTriangle
expr1->expr2Rule[expr1,expr2]e->(e->e)LeftTriangle
expr1expr2Rule[expr1,expr2]e→(ee)LeftTriangle
expr1:>expr2RuleDelayed[expr1,expr2]e:>(e:>e)LeftTriangle
expr1RuleDelayed expr2RuleDelayed[expr1,expr2]eRuleDelayed(eRuleDelayede)LeftTriangle
expr1/.expr2ReplaceAll[expr1,expr2](e/.e)/.eLeftTriangle
expr1//.expr2ReplaceRepeated[expr1,expr2](e//.e)//.eLeftTriangle
expr1+=expr2AddTo[expr1,expr2]e+=(e+=e)LeftTriangle
expr1-=expr2SubtractFrom[expr1,expr2]e-=(e-=e)LeftTriangle
expr1*=expr2TimesBy[expr1,expr2]e*=(e*=e)LeftTriangle
expr1/=expr2DivideBy[expr1,expr2]e/=(e/=e)LeftTriangle
expr&Function[expr]LeftTriangle
expr1:expr2Colon[expr1:expr2]e:e:e
expr1//expr2expr2[expr1](e//e)//e
expr1VerticalSeparatorexpr2VerticalSeparator[expr1,expr2]eVerticalSeparatoreVerticalSeparatore
expr1Thereforeexpr2Therefore[expr1,expr2]eTherefore(eThereforee)
expr1Becauseexpr2Because[expr1,expr2](eBecausee)Becausee
expr1=expr2Set[expr1,expr2]e=(e=e)LeftTriangle
expr1:=expr2SetDelayed[expr1,expr2]e:=(e:=e)LeftTriangle
expr1^=expr2UpSet[expr1,expr2]e^=(e^=e)LeftTriangle
expr1^:=expr2UpSetDelayed[expr1,expr2]e^:=(e^:=e)LeftTriangle
symb/:expr1=expr2TagSet[symb,expr1,expr2]LeftTriangle
symb/:expr1:=expr2TagSetDelayed[symb,expr1,expr2]LeftTriangle
expr=.Unset[expr]LeftTriangle
symb/:expr=.TagUnset[symb,expr]LeftTriangle
expr1Functionexpr2Function[{expr1},expr2]eFunction(eFunctione)LeftTriangle
expr>>filenamePut[expr,"filename"]LeftTriangle
expr>>>filenamePutAppend[expr,"filename"]LeftTriangle
expr1;expr2;expr3CompoundExpression[expr1,expr2,expr3]LeftTriangle
expr1;expr2;CompoundExpression[expr1,expr2,Null]LeftTriangle
expr1\`expr2FormBox[expr2,expr1]e\`(e\`e)LeftTriangle

演算子の入力形(優先度の高い順から並んでいる)

特殊な入力形完全形
#Slot[1]
#nSlot[n]
##SlotSequence[1]
##nSlotSequence[n]
%Out[ ]
%%Out[-2]
%%...%n 回)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[ ]]]

補助的な入力形(上から優先度の高い順に並んでいる)

特殊文字

演算子として使われる特殊文字は,演算子が表す関数と同じ名前を持つ.例えば,特殊文字CirclePlusの名前は\[CirclePlus]であり,関数CirclePlusを表している.例外として,\[GreaterSlantEqual]\[LessSlantEqual]\[RoundImplies]がある.
挿入句的な演算子で使われる区切り記号は\[LeftName]\[RightName]のように命名されている.
「名前付き文字のリスト」には演算子として使われる特殊文字の一覧表がある.
キーボードの文字特殊文字
->\[Rule]
:>\[RuleDelayed] RuleDelayed
Equal\[Equal] =
NotEqual\[NotEqual]
キーボードの文字特殊文字
>=\[GreaterEqual]
>=\[GreaterSlantEqual] GreaterSlantEqual
<=\[LessEqual]
<=\[LessSlantEqual] LessSlantEqual

解釈が等価なキーボード文字と特殊文字

解釈が異なるキーボード文字と特殊文字

優先順位と入力形の並び順

入力形の表では優先順位が高い順に並べられていて,また,同一の欄にある入力形は同じ優先順位を持つ.表では同一の優先度が2つのページにまたがらないようになっている.「式の特殊な入力法」で説明したように,入力した式の各項は優先順位に従ってまとめられる.一般的にはCircleTimesCirclePlusより高い優先順位を持つ場合,aCirclePlusbCircleTimescaCirclePlus (bCircleTimesc)と解釈され,aCircleTimesbCirclePlusc (aCircleTimesb)CirclePlusc と解釈される.

入力形のグループ化

ある入力形が繰り返し使用されたり,優先順位の等しい入力形と同時に使用されたりしたときにどのようにグループ化されるかが,表の第3列に示されている.例えば,a/b/c(a/b)/cとグループ化される(左側の結合則).また,a^b^ca^(b^c)とグループ化される(右側の結合則).a+b+cのような式ではPlusは両側の結合則を持ち,それがFlat属性により表されているので,グループ化について考える必要はない.

積分演算子の優先順位

上記の表において Integral expr1 DifferentialD expr2のような「外側」が優先される形式は,Powerよりも優先順位が低く,また,Sumのように「内側」が優先される形式よりは優先順位が高い,という位置にある.「外側」優先はいつ expr2をカッコでくくればよいかを決定し,「内側」優先はいつ expr1をカッコでくくればよいかを決定する.
積分演算子に関連する2次元的な入力形は「二次元の入力形」を参照のこと.

スペースと乗算

Mathematica においてスペースは,通常の数学の場合と同じように乗算を表す.さらに,Mathematica では,完結した式が隣り合っていればスペースで区切られていなくても,乗算するものとして扱う.
• x y z LongRightArrow x*y*z
• 2x LongRightArrow 2*x
• 2(x+1) LongRightArrow 2*(x+1)
• c(x+1) LongRightArrow c*(x+1)
• (x+1)(y+2) LongRightArrow (x+1)*(y+2)
• x! y LongRightArrow x!*y
• x!y LongRightArrow x!*y

乗算の記述法

x!yのような式は(x!)*yx*(!y)のどちらとも取れるが,実際には,Factorialの方がNotより優先順位が高いので,前者が計算される.
単一の入力形に含まれるスペースは無視される.例えば,a + bは,a+bと等しい.優先順位の低い演算子の両側にスペースを入れることで,プログラムの可読性を高めることができる.
シンボルの前に数字を付加することで「係数」を与えることができる.10進数よりも底が大きい数を使う場合は文字も使うことができる(10進法以外の数を使う場合,係数とシンボルの間にはスペースが必要となる).
x^2yx^2 yと同様に(x^2) yを意味する
x/2yx/2 yと同様に(x/2) yを意味する
xyは単一のシンボルを表し,x*yではない

注意を要するいくつかの例

スペースを避けた方がよい場合

/.=.>=のような複合演算子の各文字間にスペースを入れるのは避けるべきである.そのようなスペースは場合によっては可能かもしれないが,混乱を生む可能性がある.
パターンオブジェクトx_を入力するときもスペースを入れてはいけない.x_のように入力すると,Mathematicax_ではなく,x*_と解釈するからである.
同じように,x_:value 等のパターンオブジェクトの中にスペースを入れるのも好ましくない.

間隔調整文字

• キーボードのスペースキーを使った通常の入力記号名 (\[RawSpace])
\[VeryThinSpace]\[ThinSpace]...,\[ThickSpace]
\[NegativeVeryThinSpace]\[NegativeThinSpace]...,\[NegativeThickSpace]
SpaceIndicator (\[SpaceIndicator])

キーボードのスペースと等しい働きをする間隔調整文字

関係演算子

関係演算子は混ぜて使ってもよい.a>b>=cのような関係式は,Inequality[a, Greater, b, GreaterEqual, c]に変換され,(a>b)&&(b>=c)として評価される.(Inequalityは,a>b>=cのような入力式の処理において,式が(この場合は)2度評価されないようにするために使われる.)

ファイル名

<<>>>>>の後にファイル名を指定する際は引用符でくくる.ファイルがアルファベットの文字と数字,特殊文字と記号`/.\!-_:$*~?からファイル名が構成されているときや,スペースとタブと改行文字を除く任意の文字を両側から角カッコでくくったものであるときには引用符は必要ない.引用符を付けない場合,ファイル名の後に続けられるのはセミコロンとコンマ,さらに,スペース,タブ,改行,そして,)]}だけである.
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team