TreeCases
TreeCases[tree,pattern]
データが pattern と一致する tree の部分木のリストを与える.
TreeCases[tree,pattern,levelspec]
levelspec で指定されたレベルにあってデータがパターンと一致する tree の全部分木のリストを与える.
TreeCases[tree,pattern,levelspec,n]
データがパターンと一致する tree の最初の n 個の部分木を与える.
詳細とオプション
- TreeCasesは,Treeオブジェクトの任意のレベル範囲の任意のパターンにマッチするデータを持つ部分木をリストにする.マッチのリストは深さ優先探索や幅優先探索を含むさまさまな順序で与えることができる.
- TreeCases[tree,pattern]は tree のすべての部分木を交互にテストして pattern にマッチするデータを持つものを求めようとする.
- TreeCasesはTreeLevelにおけるように標準的なレベル指定を使う.
-
n レベル1からレベル n まで All レベル0からInfinityまで Infinity レベル1からInfinityまで {n} レベル n のみ {n1,n2} レベル n1からレベル n2まで - TreeCasesの levelspec のデフォルト値は{0,Infinity}である.
- TreeCasesは,左から右で深さ優先順に,親の前に子を訪れる形で部分木を横断する.
- TreeCases[…,TreeTraversalOrderorder]を使うと,深さ優先探索や幅優先探索のように異なる順序で部分木を訪れることができる.
- TreeCases[pattern][tree]はTreeCases[tree,pattern]に等しい.
例題
すべて開くすべて閉じる例 (4)
スコープ (6)
木の位置指定でTreeCasesの演算子形を使う:
オプション (3)
特性と関係 (5)
TreeCasesはTreePositionが与える位置を抽出する:
TreeCountはTreeCasesが与えるマッチする部分木の数を与える:
TreeCases[tree,pattern,Infinity]はTreeChildren@TreeExtract[tree,TreeCases[pattern]]に等しい:
Cases[expr,pattern,levelspec]はTreeData/@TreeCases[ExpressionTree[expr,"Subexpressions"],pattern,levelspec]に等しい:
Cases[expr,pattern,levelspec,HeadsTrue]は,正のレベルについてはTreeData/@TreeCases[ExpressionTree[expr,"Subexpressions",HeadsTrue],pattern,levelspec]に等しい:
考えられる問題 (1)
TreeCasesは,デフォルトで,レベル1から始めるので根は訪れない:
テキスト
Wolfram Research (2021), TreeCases, Wolfram言語関数, https://reference.wolfram.com/language/ref/TreeCases.html (2021年に更新).
CMS
Wolfram Language. 2021. "TreeCases." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2021. https://reference.wolfram.com/language/ref/TreeCases.html.
APA
Wolfram Language. (2021). TreeCases. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TreeCases.html