Seems wasteful to create the intermediate collection, is it really needed? iterator.map.reduceLeft?