How to | 規則を作成して使う方法

Wolfram言語において変換規則を使うと,記号,関数,その他すべての形の式について局所値を設定することができる.規則の使用は,別の式の全体あるいは一部を指定する値で置換するための強力で拡張可能な方法を提供する.

規則の簡略表記には,右方向の矢印を使う.これは,「」(-と>の間にスペースを入れない)と入力することによって得る.Wolframシステムのフロントエンドは,「」を入力し,さらにタイプを続けると,これを自動的に「」に変換する.これらの記号はRuleの簡略形である.

以下の変換規則を作成する.この規則は「になる」という意味であると考えてよい:

In[1]:=
Click for copyable input
Out[1]=

」の出力を見ると,この規則は何も行わないことが分かる.出力は規則そのものに過ぎない.これは,規則だけでは何も行わないからである.規則は式と一緒に使ってはじめて役に立つものなのである.

規則は「」(ReplaceAllの簡略形)を使って式に適用することができる.この一般的な構文は, (式 /. 規則)である.

」を使って,規則を式と一緒に使う:

In[2]:=
Click for copyable input
Out[2]=

2つ以上の規則を式と一緒に使う場合は,規則をリストに入れる:

In[3]:=
Click for copyable input
Out[3]=

同じ変数について2つの規則を与えると,Wolfram言語は最初の規則だけを使う:

In[4]:=
Click for copyable input
Out[4]=

変数は,単独の値だけでなく,どのような式にでも置き換えることができる.

で置き換える:

In[5]:=
Click for copyable input
Out[5]=

規則を使って式のもっと大きな部分を置き換えることもできる:

In[6]:=
Click for copyable input
Out[6]=

実際,規則は関数を含めて,どのような式と一緒にでも使うことができる.

で置き換える:

In[7]:=
Click for copyable input
Out[7]=

について規則を使う.この規則は厳密にに一致し,には影響を与えないことに注意する:

In[8]:=
Click for copyable input
Out[8]=

関数を置換するためには,その引数がどのようなものであっても,規則でパターンを使わなくてはならない.

規則は, 「 goes to となる)」と読むことができる:

In[9]:=
Click for copyable input
Out[9]=

パターンを使うことについての詳細は,「パターンとは」を参照のこと.

    

」を使って設定する規則は即時置換規則である.つまり,右辺は規則と同時に評価される:

In[1]:=
Click for copyable input
Out[1]=

代りに,規則が式と一緒に使われるまで評価されないようにする遅延置換規則を使う必要がある場合もある.遅延置換規則は,RuleDelayedを使って作成する.

遅延置換規則の簡略形は,「」(:と>の間にスペースを入れない)である.Wolframシステムのフロントエンドは,「」と入力し,さらにタイプを続けると,これを自動的に「」に変換する.これらの記号は,RuleDelayedの簡略形を表す:

In[2]:=
Click for copyable input
Out[2]=

規則を使って,0から1の範囲にある3つのランダムな実数を生成する問題を考えてみる.即時置換規則を使うと,結果として同じ数が3つ生成される:

In[3]:=
Click for copyable input
Out[3]=

異なる数を3つ生成する場合には,遅延置換規則を使う:

In[4]:=
Click for copyable input
Out[4]=
    

」を使って明示的に設定した割当ては,大域的な影響を及ぼすのに対して,規則は一緒に使った式についてだけ影響を及ぼす.

」を使ってを割り当ててから,を評価してその値をチェックする:

In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=

規則を使ってに値を割り当てる:

In[3]:=
Click for copyable input

を評価すると,規則によって割り当てられた値は保存されなかったことが分かる:

In[4]:=
Click for copyable input
Out[4]=

規則が影響を与えるようにするには,これを式と一緒に使わなくてはならない.しかし,記号に明示的に規則を割り当ててから,その記号を規則と同じように使うこともできる.

」を使って,規則に割り当ててから,を式と一緒に使う:

In[5]:=
Click for copyable input
In[6]:=
Click for copyable input
Out[6]=

は大域的に記号として保存されるようになったので,の代りに続けてを使うことができる.

同様に,式を明示的に記号に割り当ててから,その記号について規則を使うこともできる:

In[7]:=
Click for copyable input
In[8]:=
Click for copyable input
Out[8]=

この方法は,同じ式を2回以上の計算に使うような場合には特に便利である.