'++' in these cases will get slower and slower as you traverse the accumulator.  If you switch to dict:fold/3 you can just accumulate in a new dict, and add an many keys as you want.  If you do need this sort of pattern, it's usually better to push to the head of the list, then reverse later.  In this case you wouldn't even need the reverse since the order won't matter in the event.