Mathematica 9 is now available

Documentation / Mathematica / Mathematicaブック / Mathematicaリファレンス ガイド / パターンと変換規則 /

A.5.1 パターン

ある分類に属す式を表すものをパターンと呼ぶ.パターンは特定の種類の式を表すパターンオブジェクトを含んでいる.

パターンオブジェクト

複数の同じ名前をもったパターンオブジェクトが1つのパターン内に存在するとき,それらのオブジェクトはすべて同一の式を指していなければならない.つまり,f[x_, x_]ではf[2, 2]は表せるが,f[2, 3]は表せない.

_h等のパターンオブジェクトにおいて,頭部hはどのような式でもよいが,パターンであってはなら ない.

x__等のパターンオブジェクトは式の列を表す.例えば,式f[a, b, c]はパターンf[x__]で表せる.そのとき,xSequence[a, b, c]になる.パターンで抽出した後にxを変換規則で使用したなら,規則にあるxに列が代入され,関数中の他の引数と一緒にされる.例えば,g[u, x, u]の式はg[u, a, b, c, u]になる.

関数の引数においてパターンオブジェクトx_:vx_.は,省略可能な引数を表す.x_:v形式の引数が省略されたときは,xには値vが使用される.x_.形式の引数が省略されるときは,xには関数に関連付けられているデフォルト値が取られる.このデフォルト値はDefault[f]の書式を使って設定できる.

デフォルト値の設定

f[x__, y__, z__]のようなパターンは,さまざまなx, y, zの組合せでf[a, b, c, d, e]等とマッチする.このようなときは,まず,xyが最小になるような組合せが試される.一般に,単一の関数に複数の_____が使われている場合,最後尾にあるものを除いた,すべての_____が最も短くなるような組合せが使用され,最後尾のパターンに残りがマッチする.

x_:vx_.があるときは,どの引数も省略されていないという仮定のもとに関数の検索が行われる.その後で,後寄りの引数が省略されているとして検索が行われる.

パターンマッチングで使われる属性

x_のようなパターンオブジェクトは,属性Flatを備えた関数fのどんな引数の列でも表せる.この場合,xの値は引数にfを適用したものになる.xが対応する列に1つの引数しかないときは,もしfOneIdentityの属性があるなら,f[e]ではなくeが使われる.さらに,fOneIdentityの属性をもち,xがマッチするのが単一の引数であるなら,xにはf[e]ではなくeが使われる.



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.