concat и merge похожие - объеденяют несколько потоков в один, просто передавая данные дальше по потоку. Разница в том, что первый делает это в порядке добавленных потоков, а второй в порядке появления данных.
zip же комбинирует айтемы с разных потоков в какой-то другой айтем.