Clojure.
(defn concat-inner-seqs "concat inner sequencies in sequence of tuples" [seq-of-seqs] (apply (partial map concat) seq-of-seqs)) (println (concat-inner-seqs [[[1] [2] [:a]] [[3] [4] [:b]] [[5] [6] [:c]]])) ; ((1 3 5) (2 4 6) (:a :b :c))А теперь вот это придется объяснить всем заинтересованным сотрудникам.
PS: Версия с мапами вместо туплов:
(defn concat-maps-seq "concat inner sequencies in sequence of maps" [seq-of-maps] (apply (partial merge-with concat) seq-of-maps)) (def test-data-maps [ {:F1 [1 "b" "3"] :F2 [2 'aa] :F3 [:a :e] :F4 [3333]} {:F1 [3] :F4 [4] :F6 [:b] :Pauk "abc"} {:F1 [5] :F3 [6] :F2 [:c] :Pauk "def"} ]) (println test-data-maps) (println (concat-maps-seq test-data-maps))
Сделана заменой map на merge-with. Можно использовать именованные поля и разное их количество.
no subject
(no subject)
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)