パターンにマッチする式の検索
| Cases[list,form] | パターン form にマッチしたリスト list の要素を列挙する |
| Count[list,form] | パターン form にマッチしたリスト list の要素の個数を返す |
| Position[list,form,{1}] | パターン form にマッチしたリスト list の要素の位置を列挙する |
| Select[list,test] | リスト list においてパターン判定式 test をTrueとする要素を列挙する |
| Pick[list,sel,form] | sel が form にマッチする list の要素を与える |
パターンマッチにより要素を見付ける
パターン

にマッチする要素を入力リストから検索させる.
| Out[1]= |  |
| Out[2]= |  |
Casesのような関数はリストだけでなく式にも有効である.レベルを限定しておくことで抽出する部分を特定することもできる.
| Cases[expr,lhs->rhs] | 変換規則の左辺 lhs にマッチする式 expr の要素を検索し,検索された要素に変換規則を適用し,結果を列挙する |
| Cases[expr,lhs->rhs,lev] | 式 expr のレベル lev の部分を判定する |
| Count[expr,form,lev] | 式 expr のレベル lev にある,パターン form にマッチした部分の個数を返す |
| Position[expr,form,lev] | 式 expr のレベル lev にある,パターン form にマッチした部分の市を列挙する |
パターンマッチングによる式の部分の抽出
これは,

による指数のリストを返す.
| Out[3]= |  |
パターン

は,どんな整数にもマッチする.この例では,すべてのレベルに現れる整数が検索され,結果がリスト形式で返される.
| Out[4]= |  |
| Cases[expr,form,lev,n] | パターン form にマッチした,最初の n 個の部分だけを抽出する |
| Position[expr,form,lev,n] | パターン form にマッチした,最初の n 個の位置を列挙する |
抽出数が制限されたパターンマッチングによる式の部分抽出
レベルが何であれ

のベキ数である項を最初の2つまで検索して,リスト内の位置を求める.
| Out[5]= |  |
| Out[6]= |  |
| DeleteCases[expr,form] | パターン form にマッチした式 expr の要素を削除する |
| DeleteCases[expr,form,lev] | lev で指定されたレベルにおけるパターン form にマッチした式 expr の要素を削除する |
パターンマッチングによる式の部分削除
パターン

にマッチしたリスト要素を削除する.
| Out[7]= |  |
| Out[8]= |  |
パターンマッチングによる式の組替え
まず,変換規則の左辺のパターンを使い,二項の和として組み替える.その後に,変換規則の右辺を適用する.
| Out[9]= |  |
同じ要素のペアをすべて探し出す.三重ブランク(

)は要素の任意の列を表す.
| Out[10]= |  |