Related topics popped up a couple of times in a couple of days so I need to ask:
Reading the implementation of aggregate_all/3
, it seems to me that if we use one of the predefined templates (count, sum, min, max) there is actually no findall
anywhere; there is no list; and so those work in “constant memory” (whatever that means, of course). Is that right?
The reason I am asking is that the docs are in a way underselling aggregate_all/3
; reading the docs:
Aggregate bindings in Goal according to Template. The aggregate_all/3 version performs findall/3 on Goal.
One could assume that the findall/3
will be performed and there will be a list containing all solutions; but in fact, with the predefined templates, this does not happen. Isn’t that a main selling point of aggregate_all/3
?