Well, IMHO the `flatten` solution is better readable, at least for me. I think it's not obvious what the `reduce` block does. The `flatten` call is self descriptive.