TreeExtract

TreeExtract[tree,pos]

pos で指定される位置にある tree の部分木を抽出する.

TreeExtract[tree,{pos1,pos2,}]

tree の部分木のリストを抽出する.

TreeExtract[tree,pos,h]

h を各部分木に適用して tree の部分木を抽出する.

TreeExtract[pos]

木に適用可能なTreeExtractの演算子形を表す.

詳細

  • TreeExtractを使うとTreeオブジェクトの任意の位置にある部分木の特徴が抽出できる.
  • TreeExtract[tree,{i,j,}]は,整数 i, j, について,位置{i,j,}の部分木を抽出する. »
  • TreeExtractTreePositionが返す位置指定やTreeInsertおよびTreeReplacePart等の関数で使われる拡張形式位置指定を使うことができる. »
  • 個々の位置指定 pos{part1,part2,}で与えることができる.部分指定 partiには以下が含まれる.
  • i i 番目の子
    -i最後から i 番目の子
    {i1,i2,}部分番号 i1, i2, の子のリスト
    Allすべての子
    m;;nm から n までの子
    "key"キーが"key"の子
    Key[k]任意のキー k を持つ子
    TreeLevel[levelspec]levelspec で指定されたレベルの部分木
    TreeCases[pattern]データが pattern にマッチする部分木
    TreeSelect[crit]critTrueを与える部分木
  • TreeExtract[tree,{p1,p2,}]{p1,p2,}は,すべての piがリストの場合は個々の位置指定のリストと解釈される.{p1,p2,}は,それ以外の場合は個々の位置指定とみなされる. »
  • 1レベルから複数の部分を抽出する指定はそのレベルのデータを保持する. »
  • TreeExtractは,Partにおけるのと同じキー指定を使って部分木のAssociationを含む木に使うことができる. »
  • TreeExtract[pos][tree]TreeExtract[tree,pos]に等しい.

例題

すべて開くすべて閉じる

  (4)

木の2番目の子を抽出する:

任意の位置の部分木を抽出する:

いくつかの位置にある部分木のリストを抽出する:

連続するレベルでそれぞれ独立した抽出を行う:

TreeExtractの演算子形を使う:

スコープ  (23)

部分指定  (9)

最初の子を抽出する:

最後から2番目の子を抽出する:

すべての子を抽出する:

奇数位置の子を抽出する:

Keyを使って位置を指定する:

キーが文字列の場合はKeyは必要ない:

あるレベル範囲の部分木を抽出する:

データパターンに一致する部分木を抽出する:

厳密に2個の子を持つ部分木を抽出する:

異なる指定を使って抽出する:

単一の位置と複数の位置  (3)

木から部分木を一つ抽出する:

木からいくつかの部分木を抽出する:

位置{1,3}の部分木を抽出する:

木の最初と三番目の部分木を抽出する:

木の長さ1の位置のリストを抽出する:

木の部分木をいくつか抽出する:

Allを含む形  (2)

2番目の子の子を抽出する:

同様に:

各子の2番目の子を抽出する:

各子の最初と三番目の子を抽出する:

各子の最初と三番目の子を別々に抽出する:

Allを使った抽出は,そのレベルのデータを保持する:

連想  (5)

連想を含む木からキーを使って部分木を抽出する:

キーが文字列の場合,Keyラッパーは使っても使わなくてもよい:

連想を含む木からキーを使って部分木を抽出する:

連想を含む木から位置を使って部分木を抽出する:

連想を含む木からいくつかの部分木を抽出する:

連想を含む木からネストした部分木を抽出する:

連想を含む木からいくつかのネストした部分木を抽出する:

スパンとサブリスト  (4)

リストの3番目から5番目までの子を抽出する:

奇数位置の子を抽出する:

各子の最初の3つの子を抽出する:

各この最初と最後の子を抽出する:

2番目から4番目までの子の最初の子を抽出する:

最初,3番目,4番目の子の2番目の子を抽出する:

最後の3つの子の最初,2番目,5番目の子を抽出する:

各子の最初と5番目の子を抽出する:

特性と関係  (10)

式の頭部から木を構築する:

TreeExtractは木の部分木を抽出する:

次は,式の部分式の抽出に相当する:

Extractは部分式を直接抽出できる:

pos がリストではなければ,pos{pos}は同じ指定である:

整数のリスト{i,j,}について,TreeExtract[tree,{i,j,}]@TreeExtract[j]@TreeExtract[i]@treeに等しい:

TreeExtract[tree,{{i1,j1,},{i2,j2,},}]{TreeExtract[tree,{i1,j1,}],TreeExtract[tree,{i2,j2,}],}に等しい:

これは,空リストに拡張される:

位置{}の抽出は木全体を抽出する:

TreeExtractは位置が繰り返し言及されていれば部分木を繰り返し抽出する:

TreeExtractTreePositionが返す位置のリストを使うことができる:

TreeExtract[tree,{pos1,pos2,},h]h は各 posiの部分木を抽出した結果をラップする:

TreeExtract[tree,pos,h]h は位置 pos の部分木を抽出した結果をラップする:

1レベルの複数の部分を抽出する指定はそのレベルのデータを保持する:

TreeExtract[tree,{p1,p2,}]は,すべての piがリストなら{p1,p2,}を個々の位置指定のリストとして扱う:

{{1,2},{3,4}}については,位置{1,2}と位置{3,4}の部分木が抽出される:

任意の piがリストではなければ{p1,p2,}はパート指定のリストとして扱われる:

{{{1,2},{3,4}}}については,パート1とパート2のパート3とパート4が抽出される:

考えられる問題  (2)

位置のリストが空なので,TreeExtract[tree,{}]は部分木の空リストを返す:

TreeExtract[tree,{{}}]は位置{}の部分木を抽出するが,これは木全体に当る:

第2引数のリストのリストは常に位置指定のリストとして解釈される:

結果として,Partでは等価である指定がTreeExtractには異なるものとして扱われることがある:

PartTreeExtractの一貫性が必要なら,リストのリストを使って末尾の余分なリストを削除する:

Wolfram Research (2021), TreeExtract, Wolfram言語関数, https://reference.wolfram.com/language/ref/TreeExtract.html (2022年に更新).

テキスト

Wolfram Research (2021), TreeExtract, Wolfram言語関数, https://reference.wolfram.com/language/ref/TreeExtract.html (2022年に更新).

CMS

Wolfram Language. 2021. "TreeExtract." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022. https://reference.wolfram.com/language/ref/TreeExtract.html.

APA

Wolfram Language. (2021). TreeExtract. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TreeExtract.html

BibTeX

@misc{reference.wolfram_2024_treeextract, author="Wolfram Research", title="{TreeExtract}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/TreeExtract.html}", note=[Accessed: 17-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_treeextract, organization={Wolfram Research}, title={TreeExtract}, year={2022}, url={https://reference.wolfram.com/language/ref/TreeExtract.html}, note=[Accessed: 17-November-2024 ]}