TreeMapAt
TreeMapAt[f,tree,pos]
applies f to the data at the position specified by pos in tree.
TreeMapAt[f,tree,{pos1,pos2,…}]
applies f to the data at several positions.
Details and Options
- TreeMapAt applies a function to parts of the data at any position in a Tree object.
- TreeMapAt[f,tree,{i,j,…}] applies the function f to the data at position {i,j,…}.
- TreeMapAt can use the position specifications returned by TreePosition as well as extended forms as used in functions such as TreeInsert and TreeReplacePart. »
- An individual position specification pos can be given as {part1,part2,…}, where part specifications parti include:
-
i the i child -i the i child from the end {i1,i2,…} the list of children with part numbers i1, i2, … All all children m;;n children m through n "key" the child whose key is "key" Key[k] the child with an arbitrary key k TreeLevel[levelspec] the subtrees on levels specified by levelspec TreeCases[pattern] the subtrees with data matching pattern TreeSelect[crit] the subtrees for which crit gives True - In TreeMapAt[f,tree,{p1,p2,…}], {p1,p2,…} is interpreted as a list of individual position specifications if all the pi are lists. Otherwise, {p1,p2,…} will be taken to be an individual position specification. »
- TreeMapAt works on trees containing an Association of subtrees, using the same specification for keys as in Part. »
- TreeMapAt applies f repeatedly to a particular position if that position is mentioned more than once in the list of positions. »
- TreeMapAt[f,pos][tree] is equivalent to TreeMapAt[f,tree,pos].
- TreeMapAt has the same options as Tree.
Examples
open allclose allBasic Examples (3)
Map f at the data of the second child of a tree:
Use the operator form of TreeMapAt:
Scope (14)
Part Specifications (9)
Associations (5)
Map onto a tree containing an association by key:
If the key is a string, the Key wrapper is optional:
Map onto a tree containing an association by key:
Map onto a tree containing an association by position:
Map at several subtrees of a tree containing an association:
Map at a nested subtree of a tree containing an association:
Map at several nested subtrees of a tree containing an association:
Properties & Relations (8)
TreeMap[f,tree,levelspec] is equivalent to TreeMapAt[f,tree,TreeLevel[levelspec]]:
Construct a tree from the heads in an expression:
TreeMapAt maps at the data of subtrees of a tree:
This corresponds to mapping at the heads and leaves in an expression:
MapAt can map at the heads and leaves directly:
If pos is not a list, pos and {pos} are equivalent specifications:
TreeMapAt[f,tree,{{i1,j1,…},{i2,j2,…},…}] is equivalent to …@TreeMapAt[f,{i2,j2,…}]@TreeMapAt[f,{i1,j1,…}]@tree:
This extends to the empty list:
Mapping at position {} applies the function to the data of the root node:
TreeMapAt applies f repeatedly if a position is mentioned repeatedly:
TreeMapAt can use the lists of positions returned by TreePosition:
This is the data returned by TreeExtract:
TreeMapAt[f,tree,{p1,p2,…}] treats {p1,p2,…} as a list of individual position specifications if all the pi are lists:
For {{1,2},{3,4}}, the data at positions {1,2} and {3,4} is modified:
If any pi is not a list, {p1,p2,…} is treated as a list of part specifications:
For {{{1,2},{3,4}}}, parts 3 and 4 of parts 1 and 2 are modified:
Possible Issues (2)
TreeMapAt[f,tree,{}] does not map f because the list of positions is empty:
TreeMapAt[f,tree,{{}}] maps f at position {}, which corresponds to the root node:
A list of lists in the second argument is always interpreted as a list of position specifications:
As a result, specifications that are equivalent in Part may be treated differently by TreeMapAt:
Use a list of lists if consistency between Part and TreeMapAt is needed:
Text
Wolfram Research (2021), TreeMapAt, Wolfram Language function, https://reference.wolfram.com/language/ref/TreeMapAt.html (updated 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