Operator Type:
Operator Scope of Action:
Operator Purpose:
Operator First Added:
Operator Altered:
Function [other Function type actions]
Group [operators of similar scope]
Set & List creation [other Set & List creation operators]
Already in v5.0.0
5.6.0
collect(group,attribute)
A function collect() builds a List (prior to v5.6.0 is was a Set) by visiting each note described by group and adding the value of the designated attribute to the set. See collect_if() a for a related new operator.
group may be any of {children,descendants,siblings,ancestors,all}. In addition, group may be argument that designates a particular (single) note other than this.
attribute can be any expression, but is typically an attribute.
For example,
collect(children,$Name)
constructs a set with the name of each child of the note.
For example,
collect(children(/agents/books),$Name)
does the same for children of the note 'books' inside 'agents'.
collect(children,$Width * $Height)
collects a series of numerical values of each child's map icon height/width in Tinderbox map units. Thus if a child had a $Width of 4 and $Height of 2, the collect() result for that item would be 8.
If a list of unique values is required - i.e. a set rather than a list, simply pass the output to a Set attribute. Thus if:
$MyList = collect(children,$FavFruit)
$MyList is "Apples;Oranges;Pears;Apples"
$MySet = collect(children,$FavFruit)
MySet is "Apples;Oranges;Pears;"