TreeMapAt
詳細とオプション
- TreeMapAtはTree オブジェクトの任意の位置にあるデータの部分に関数を適用する.
- TreeMapAt[f,tree,{i,j,…}]は関数 f を位置{i,j,…}のデータに適用する.
- TreeMapAtは,TreePositionが返す位置指定やTreeInsertおよびTreeReplacePartのような関数が使う位置指定の拡張形式を使うことができる. »
- 個々の位置指定 pos は{part1,part2,…}として与えることができる.以下はその部分指定 partiの可能な形である.
-
i i
番目の子-i 最後から i
番目の子{i1,i2,…} 部分番号が i1, i2, …の子のリスト All すべての子 m;;n m から n までの子 "key" キーが"key"の子 Key[k] 任意のキー k を持つ子 TreeLevel[levelspec] levelspec で指定されたレベルにある部分木 TreeCases[pattern] pattern にマッチするデータを持つ部分木 TreeSelect[crit] crit がTrueを与える部分木 - TreeMapAt[f,tree,{p1,p2,…}]の{p1,p2,…}は,piがすべてリストの場合は個々の位置指定のリストであると解釈される.{p1,p2,…}は,それ以外の場合は個々の位置指定とみなされる. »
- TreeMapAtは,Partにおけるのと同じキーの指定を使って部分木のAssociationを含む木に使うことができる. »
- TreeMapAtは,位置のリストで特定の位置が複数回言及されている場合は,その位置に f を繰り返し適用する. »
- TreeMapAt[f,pos][tree]はTreeMapAt[f,tree,pos]に等しい.
- TreeMapAtにはTreeと同じオプションが使える.
全オプションのリスト
例題
すべて開く すべて閉じる例 (3)
TreeMapAt[f, [image], {2}]TreeMapAt[f, [image], {3, 3}]TreeMapAt[f, [image], {{1}, {2, 1}, {3, 3}}]TreeMapAtの演算子形を使う:
TreeMapAt[f, 1][[image]]スコープ (14)
部分指定 (9)
TreeMapAt[h, [image], 3]TreeMapAt[h, [image], -2]TreeMapAt[h, [image], All]TreeMapAt[f, [image], 1 ;; -1 ;; 2]Keyを使って位置を指定する:
TreeMapAt[f, [image], Key["b"]]文字列のキーについては Keyは必要ない:
TreeMapAt[f, [image], "b"]TreeMapAt[f, [image], TreeLevel[{1, 2}]]TreeMapAt[f, [image], TreeCases[_ ? EvenQ]]TreeMapAt[f, [image], TreeSelect[Length[TreeChildren[#]] == 2&]]TreeMapAt[f, [image], {TreeLevel[{2}], TreeCases[_ ? OddQ]}]連想 (5)
TreeMapAt[f, [image], {Key[expr]}]キーが文字列の場合,Keyラッパーは使っても使わなくてもよい:
TreeMapAt[f, [image], {"str"}]TreeMapAt[f, [image], {Key[1]}]TreeMapAt[f, [image], {1}]TreeMapAt[f, [image], {{1}, {Key[1]}}]TreeMapAt[f, [image], {Key[3], 1}]TreeMapAt[f, [image], {{Key[3], 1}, {3, 1}}]特性と関係 (8)
TreeMap[f,tree,levelspec]はTreeMapAt[f,tree,TreeLevel[levelspec]]に等しい:
TreeMap[f, [image], {1, 2}] === TreeMapAt[f, [image], TreeLevel[{1, 2}]]ExpressionTree[1[2[3, 4], 5[6, 7]], "Heads"]TreeMapAtは木の部分木のデータにマッピングする:
TreeMapAt[f, %, {{1}, {{1, 2}, 2}}]TreeExpression[%, "Heads"]MapAtは頭部と葉に直接マッピングできる:
mapAtData[f_][head_[args___]] := f[head][args]
mapAtData[f_][expr_] := f[expr]MapAt[mapAtData[f], 1[2[3, 4], 5[6, 7]], {{1}, {{1, 2}, 2}}]pos がリストではないなら,pos と{pos}という指定は等しい:
tree = [image];TreeMapAt[f, tree, 3] === TreeMapAt[f, tree, {3}]TreeMapAt[f, tree, 3 ;; 5] === TreeMapAt[f, tree, {3 ;; 5}]TreeMapAt[f,tree,{{i1,j1,…},{i2,j2,…},…}]は…@TreeMapAt[f,{i2,j2,…}]@TreeMapAt[f,{i1,j1,…}]@tree に等しい:
tree = [image];TreeMapAt[f, tree, {{1 ;; 2, 1}, {2 ;; 3, 2}}] === TreeMapAt[f, {2 ;; 3, 2}]@TreeMapAt[f, {1 ;; 2, 1}]@treeTreeMapAt[f, tree, {}] === treeTreeMapAt[f, [image], {{}}]TreeMapAtは,位置が繰り返し言及されているなら,f を繰返し適用する:
TreeMapAt[f, [image], {{1}, {3}, {1}}]TreeMapAtはTreePositionが返す位置のリストを使うことができる:
tree = [image];pos = TreePosition[tree, _ ? EvenQ]TreeMapAt[f, tree, pos]これはTreeExtractが返すデータである:
TreeExtract[tree, pos, TreeData]TreeMapAt[f,tree,{p1,p2,…}]は,すべての piがリストなら{p1,p2,…}を個々の位置指定のリストとして扱う:
tree = [image];{{1,2},{3,4}}のときは,位置{1,2}と{3,4}のデータは変更される:
TreeMapAt[f, tree, {{1, 2}, {3, 4}}]任意の piがリストではないなら,{p1,p2,…}は部分指定のリストとして扱われる:
TreeMapAt[f, tree, {{1, 2}, 3}]TreeMapAt[f, tree, {1, {3, 4}}]{{{1,2},{3,4}}}のときは,部分1と2の部分3と4が変更される:
TreeMapAt[f, tree, {{{1, 2}, {3, 4}}}]考えられる問題 (2)
TreeMapAt[f,tree,{}]は位置のリストが空なので f をマッピングしない:
TreeMapAt[f, [image], {}]TreeMapAt[f,tree,{{}}]は f を位置{}にマッピングするが,これは根ノードに相当する:
TreeMapAt[f, [image], {{}}]第2引数のリストのリストは常に位置指定のリストとして解釈される:
tree = [image];TreeMapAt[f, tree, {{1, 2}}]結果として,Partでは等しい指定がTreeMapAtでは異なることがある:
Part[TreeChildren[tree], {1, 2}] === Part[TreeChildren[tree], 1 ;; 2]TreeMapAt[f, tree, {{1, 2}}] === TreeMapAt[f, tree, {1 ;; 2}]PartとTreeMapAtで一貫性が必要ならリストのリストを使う:
TreeMapAt[f, tree, {{{1, 2}}}] === TreeMapAt[f, tree, {{1 ;; 2}}]関連するガイド
-
▪
- 木構造の計算
テキスト
Wolfram Research (2021), TreeMapAt, Wolfram言語関数, https://reference.wolfram.com/language/ref/TreeMapAt.html (2024年に更新).
CMS
Wolfram Language. 2021. "TreeMapAt." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/TreeMapAt.html.
APA
Wolfram Language. (2021). TreeMapAt. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TreeMapAt.html
BibTeX
@misc{reference.wolfram_2026_treemapat, author="Wolfram Research", title="{TreeMapAt}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/TreeMapAt.html}", note=[Accessed: 03-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_treemapat, organization={Wolfram Research}, title={TreeMapAt}, year={2024}, url={https://reference.wolfram.com/language/ref/TreeMapAt.html}, note=[Accessed: 03-November-2026]}