S is the previous count, if any. Seq[V] are potentially many new counts. All of them have to be added together to keep an accurate total. It's as if the count were 3, and I tell you I've just observed 2, 5, and 1 additional occurrences -- the new count is 3 + (2+5+1) not 1 + 1.
I butted in since I'd like to ask a different question about the same line of code. Why: val currentCount = values.foldLeft(0)(_ + _) instead of val currentCount = values.sum This happens a few places in the code. sum seems equivalent and likely quicker. Same with things like "filter(_ == 200).size" instead of "count(_ == 200)"... pretty trivial but hey. On Wed, Apr 30, 2014 at 9:23 PM, Adrian Mocanu <amoc...@verticalscope.com> wrote: > Hi TD, > > Why does the example keep recalculating the count via fold? > > Wouldn’t it make more sense to get the last count in values Seq and add 1 to > it and save that as current count? > > > > From what Sean explained I understand that all values in Seq have the same > key. Then when a new value for that key is found it is added to this Seq > collection and the update function is called. > > > > Is my understanding correct?