http://hackage.haskell.org/packages/archive/hxt/latest/doc/html/Control-Arrow-ArrowTree.html#v:deep
deep :: Tree t => a (t b) c -> a (t b) cSource
ツリー全体で、述語が保持されているサブツリーを再帰的に検索します。検索はトップダウンで実行されます。ツリーが見つかると、これが結果リストの要素になります。見つかったツリーは、述語も保持できるサブレスについてはさらに調べられません。multi
この種の検索については、を参照してください。
例:deep isHtmlTable
ドキュメント内のすべての最上位のテーブル要素(の適切な定義をisHtmlTable
含む)を選択しますが、テーブルセル内にテーブルはありません。
HoogleまたはHayooで関数名または型注釈が付けられたドキュメントを見つけることができます!
基本的に、XMLツリーが次のような場合
<p>
<strong id="a">
<em id="b">
<strong id="c">
foo
</strong>
</em>
</strong>
<ins id="d">
<strong id="e">
bar
</strong>
<em id="f">
baz
</em>
</ins>
</p>
deep (isElem >>> hasName "strong") tree
のリストを返します
<strong id="a">
<strong id="e">
<strong>
ツリーに足を踏み入れたときにこれらの2つを見つけることができるのに対し、ツリーのルートは、ではなく、(isElem >>> hasName tag) tree
であるため、空のリストが返されます。<p>
<strong>