WOLFRAM言語チュートリアル

パターンの参照名

特に変換規則を作る際は,パターンに名前を付けておき,それを参照することができるようにしておきたい.例えば,パターンに参照名 を付けておけば,パターンで抽出される式が実際に何であれ,その式の参照は x でできる.参照名は,例えば,変換規則の右辺で使われる.

のような名前の付いたパターンを使う際,気を付けなければいけない点として,x の付いたすべてのブランクは,必ず同じ式を表すものでなければならない,ということがある.

このため,は,2引数を全く同じものとした式しか表すことができない.これに対して,は,引数 xy を必ずしも同じものとしないの形を持った式を表すことができる.

この変換規則は,の2つの引数が同じ場合にだけ適用される.
In[1]:=
Click for copyable input
Out[1]=

単一ブランクのパターンに限らず,任意形のパターンにも名前を付けることができる.任意パターン patternx と呼びたければ, と入力する.この方法で名前を付けておけば,パターンがブランク以外の要素で構成された特別なものでも,変換規則の右辺で参照できるようになる.

_どのような式でも表せる
x_どのような式でも表すことができ,参照名は x とする
x:patternパターン pattern にマッチするすべての式を表し,参照名は x とする

参照名があるパターン

パターンの全体に参照名を付ける.参照名を使い,変換規則の右辺でこのパターンを参照することができるようになる.
In[2]:=
Click for copyable input
Out[2]=
ここでは,指数部はとし,オブジェクト全体はとした.
In[3]:=
Click for copyable input
Out[3]=

1つのパターンを2回使い,そのどちらも同じ名前で参照されたとすると,このパターンで適合可能となる2つの式は,全く同じ構成の式に限られてしまう.

この場合は,どちらのリスト要素でもパターンにマッチする.
In[4]:=
Click for copyable input
Out[4]=
今度は,引数のパターンに同じ名前を指定したので,同じの引数を持つ最初のリスト要素だけがマッチする.
In[5]:=
Click for copyable input
Out[5]=