WOLFRAM言語チュートリアル

特殊文字

Wolfram言語には数学表記やその他の表記で使うための非常に多くの特殊文字が組み込まれている.「名前付き文字のリスト」に特殊文字の一覧があるので参考にするとよい.

特殊文字のひとつひとつには\[Infinity]のような固有の呼名が付けられている.また,よく使われる特殊文字には早く呼び出せるように短縮名(エイリアス)が割り当てられている.エイリアスにはEscinfEscのような呼名の短縮形が使われる.「式の入出力に関するオプション」にあるノートブックオプションのInputAliasesを使って,独自のエイリアスを作ることもできる.

TeXの標準言語で提供される特殊文字なら,TeXに基づいたエイリアスを使い呼び出せるようになっている.例えば,\[Infinity]を入力するにはエイリアスEsc\inftyEscを使えばよい.Wolfram言語では,さらに,SGMLとHTML規格で使われる名前に基づいたエイリアス,例えば,EscEscもサポートされる.

さらに,多くのコンピュータに搭載されている標準オペレーティングシステムでは特殊文字を入力するため特殊な組合せキーが提供される.例えば,Macintoshコンピュータでは,ほとんどのフォントでOption+5の組合せキーを押すとが入力できる.ノートブック用フロントエンドを使っている場合,定義さえしてあればこのような組合せキーがいつでも使える.また,テキスト型インターフェースを使っている場合でも,$CharacterEncodingに適切な値をセットしておけば組合せキーが使えるようになる.

完全名を使う.(例 :\[Infinity]
エイリアスを使う.(例 :EscinfEsc
TeXのエイリアスを使う.(例 :Esc\inftyEsc
SGMLまたはHTMLのエイリアスを使う.(例 :EscEsc
パレット上のボタンをクリックする.
オペレーティングシステムの提供する組合せキーを使う.

特殊文字の入力法

ノートブックでは,キーボードから入力する普通の文字と同じように特殊文字が使える.特殊文字は普通の文章にはもちろんのこと,Wolframシステムに入力する数式やコマンドにも使ってよい.

Wolframシステムの式で使うとき,特殊文字によっては特別な意味を持つものがある.例えば,Piを意味し,は関係演算子として機能する.また,は関数Unionの機能を持つ.

特殊文字 を式で使うと特別な意味を持つ.
In[1]:=
Click for copyable input
Out[1]=
[Union]Union関数として特別な意味を持つ.
In[2]:=
Click for copyable input
Out[2]=
[SquareUnion]は数式処理上の特別な意味を持たない.
In[3]:=
Click for copyable input
Out[3]=

普通の文字でもEのように数式処理上の特別な意味を持つものもあるが,そのほとんどは意味を持たない.特殊文字の場合も同じである.

つまり,例えば, は特別な意味を持つが, は持たない.

このことは についてユーザ定義の関数を設けることを許す.

はWolframシステムにとって特別な意味を持たない.
In[4]:=
Click for copyable input
Out[4]=
に数式処理上の意味付けをする.
In[5]:=
Click for copyable input
今度は他の組込み関数のように が評価される.
In[6]:=
Click for copyable input
Out[6]=

のような文字は単なる文字としてキーボードにあるの普通のアルファベット文字のように扱われる.

一方,のような文字は演算子として扱われる.Wolframシステムではこれらの特殊文字に特別な意味付けをしていないが,それでも,Wolframシステムの文法に準じた使い方をしなければならない.

は中置演算子である.
In[7]:=
Click for copyable input
Out[7]=
に関数的な意味付けをする.
In[8]:=
Click for copyable input
が評価されるようになる.
In[9]:=
Click for copyable input
Out[9]=

入力式がWolframシステムでどう解釈されるか,その詳細は標準形(StandardForm )を使っているか慣用形(TraditionalForm)を使っているかでも違う.また,解釈ボックス(InterpretationBox )等の構成体に与えた付加情報によっても違ってくる.

特殊文字にすでに組み込まれている規則をMakeExpressionを使い無効とする新規則を設けてやらない限り,Wolframシステムは特殊文字に同じ基本的な文法上の性質を割り当てる.

特殊文字がWolframシステムの入力としてどう解釈されるかは,それに割り当てられた文法的特性による.また,その特性は,特殊文字で構築した式の構造をも決める.さらに,この特性は特殊文字の表示書式にも影響を与える.例えば,文字が演算子として作用するなら,文字の両側には補助的なスペースが挿入される.普通の文字ならスペースは挿入されない.

文字a,E,
文字的な記号
演算子

特殊文字の種類

特殊文字を使うときは,目的にあったものかどうかをよく確かめてから使うとよい.表示上似たような文字がいくつかあるが,それぞれ違ったものである.

まぎらわしい特殊文字に総和のための演算子すなわち\[Sum]がある.この文字は表示上,文字のすなわち\[CapitalSigma]に非常によく似ている.

それでも,のギリシャアルファベットに比べて演算子はどちらかというと簡素に描かれ形式的な形を持つ.また,は総和の演算子であれば,総和式の大きさにより文字の大きさが調整される.ギリシャ文字としてのは現行フォントの大きさしか取らない.

表示上似通った文字

\[CapitalAlpha]の場合,両方とも文字として扱われるが,Wolframシステムでは異なった文字として扱う.また,フォントを変えたりすれば,極めて違う形で表示される.

出力結果は意味の違う文字を4つ含む.
In[10]:=
Click for copyable input
Out[10]=

伝統的な数学の記述では演算子に普通のアルファベットが使われる.例えば,積分で使う微分記号にあるがそれに対応する.

正確で一様な文法を維持するために,少なくとも標準形(StandardForm)では普通のと微分演算子であるは分けて使われる.

特殊文字である\[DifferentialD]は微分を行う演算子である.この特殊文字はエイリアスEscddEscを使っても入力できる.

微分演算子である特殊文字を使い積分を表す.普通のアルファベットではない.
In[11]:=
Click for copyable input
Out[11]=

Wolframシステムへの入力成分としてアルファベットやそれに類似した文字があるとき,それらは通常,変数や関数等の名前を表すものとして扱われる.また,演算子があると,それに対応した関数が構築されなければならない.そのとき取られる手順として,演算子として機能する特殊文字の完全名が抽出され,構築する関数の名前に当てられる.

演算子であるすなわちCirclePlusに対応した形で関数が構築される.関数名には[CirclePlus]が当てられる.
In[12]:=
Click for copyable input
Out[12]//FullForm=
論理積の関数Andが構築される.Wolframシステムにはその評価用規則が組み込まれている.
In[13]:=
Click for copyable input
Out[13]//FullForm=

上述の演算子名と関数名の間に見られる関係に従い,Wolframシステムの組込み関数,例えばを意味する特殊文字は組込み関数の名前を持つ.いくつかの例を見てみよう.特殊文字は名前が\[Divide]で,組込み関数Divideに関連付けられている.また,特殊文字は,\[Implies]の名前を持ち,組込み関数Impliesに関連付けられている.

演算子となるものを除き,特殊文字には可能な限り慣用的な名前が付いている.Wolfram言語内の別の記述と混同しないように.特殊文字の多くはそれらの表示の形を説明するような名前を持つ.には\[CirclePlus]の名前が付けられている.のような機能的な名前ではない.また,には名前\[TildeTilde]が付いている.ではない.

表示的に類似した演算子として働く特殊文字

文字の中には同じように表示されるが全く違った演算子を表すものもある.例として\[Times]\[Cross]がある.\[Times]は掛け算の関数Timesを表すためにあるが,\[Cross]はベクトルの外積を計算する関数Crossに対応している.また,Wolframシステムの表示技法の正確性を反映して,\[Cross]の表示形\[Times]の表示形に比べて,やや小さく描かれる.

\[Times]は乗算を表す演算子である.
In[14]:=
Click for copyable input
Out[14]=
演算子\[Cross]はベクトルの外積を表す.
In[15]:=
Click for copyable input
Out[15]=
2つの演算子はよく似ている.気を付けてみると,\[Times]\[Cross]よりやや大きい.
In[16]:=
Click for copyable input
Out[16]=

\[And]\[Wedge]を比べてみよう.\[And]は後者に比べやや大きめに描かれ組込み関数Andに関係付けられる.一方,\[Wedge]は表示形を表すような名前を持つが,特殊な意味は持たない.

[Wedge][And]を混ぜて使ってもよい.それぞれ違った優先度を持っているから混同されることはない.
In[17]:=
Click for copyable input
Out[17]//FullForm=

数学表記の演算子として普通使われる特殊文字の中にはキーボードの普通の文字に表示上よく似たものがある.例として,キーボードにあるハット記号に似ているすなわち[Wedge]がある.

Wolframシステムではハット記号はベキ乗として解釈される.一方,は汎用のWedge関数として扱われる.キーボードの文字に類似した特殊文字がある場合,規約で特殊文字のエイリアスにはキーボードの文字が充てられる.例えば,\[Wedge]のエイリアスはEsc^Escとされる.

ハット記号はベキ乗として解釈されるが,Esc^Escは汎用のくさび形演算子である.
In[18]:=
Click for copyable input
Out[18]=

キーボードで入力できる演算子を表すために特殊文字を使うときは,上記の規約に関連した規約が使われる.つまり,キーボードの文字が特殊文字のエイリアスに充てられる.例として,または\[Rule]を表すEsc->Escがある.また,Esc&&Escまたは\[And]を表す.

Esc->Esc\[Rule]のエイリアスである.また,Esc&&Esc\[And]のエイリアスである.
In[19]:=
Click for copyable input
Out[19]//FullForm=

類似する文字の中で最も異なった働きを持つものに垂直バー記号がある.

表示形
名前
エイリアス
意味
x|y|Alternatives[x,y]
xy\[VerticalSeparator]Esc|EscVerticalSeparator[x,y]
xy\[VerticalBar]Esc|EscVerticalBar[x,y]
x\[LeftBracketingBar]Escl|EscBracketingBar[x]
\[RightBracketingBar]Escr|Esc

垂直バー記号のいくつか

\[VerticalBar]のエイリアスはEsc|Escである.また,より頻繁に使われる\[VerticalSeparator]のエイリアスはEsc|Escである.Wolfram言語では,似通った文字には似通ったエイリアスがよく与えられている.また,より一般的でない文字に対しては,エイリアスの先頭にスペースを加える,という有効な規約がある.

EscnnnEsc一般的な文字に使う組込み型のエイリアス
EscnnnEsc類似しているが一般的ではない文字に使う組込み型のエイリアス
Esc.nnnEscWolframシステムセッションで定義される大域的なエイリアス
Esc,nnnEsc特定のノートブックで定義されるエイリアス

特殊文字のエイリアスと記述上の規約

ノートブック用フロントエンドを使っている場合,特殊文字に対してユーザ定義のエイリアスを与えることができる.必要ならば,組込み済みのエイリアスを上書きする形で定義してもよい.規約では,ユーザ定義のエイリアスはコンマで始まることになっている.

特殊文字に対してどんなエイリアスを使おうが,その文字がファイル等に保存されるときは常に完全名が使われることに注意が必要である.