In my opinion using reduce, map and zip is not a good idea in this case. What are they needed for? I don't even think your approach is more functional than the examples above.
I mean, this one line should be equally functional and .. it's shorter and even more understandable: