> So in my mind, the applicability of reduce() is pretty much limited to associative operators, and in all other cases it's better to write out the accumulation loop explicitly.
https://www.artima.com/weblogs/viewpost.jsp?thread=98196