Aggregate bindings in Goal according to Template.
The
aggregate_all/3
version performs findall/3
on Goal. Note that this predicate fails if Template
contains one or more of min(X), max(X),
min(X,Witness) or max(X,Witness) and Goal
has no solutions, i.e., the minimum and maximum of an empty set is
undefined.
The Template values count, sum(X), max(X), min(X), max(X,W)
and
min(X,W) are processed incrementally rather than using findall/3
and run in constant memory.
- See also
- foldall/4 to "fold"
over all answers.