#368
The Content Merger
 

Difficulty:Easy
Topics:Real life cases List of Maps


Mission: "Content Merger" memerlukan keahlian lo untuk menggabungkan serangkaian konten pendidikan yang tersebar dalam beberapa dokumen. Diberikan list of maps, di mana setiap map mengandung :doc-id, :content, dan :tags. Tugas lo adalah untuk menggabungkan konten dari dokumen-dokumen yang memiliki tag yang sama, dan menyajikan hasilnya dalam map baru dengan :tags sebagai kunci dan gabungan :content (dipisahkan dengan spasi jika lebih dari satu) sebagai nilai. Pastikan konten yang digabung tidak memiliki duplikasi kata dan kata-kata diurutkan secara alfabetis dalam setiap :content yang digabung.
test not run
(= (__ [{:doc-id 1 :content "Clojure functional programming" :tags ["programming", "clojure"]}
        {:doc-id 2 :content "functional programming paradigms" :tags ["programming"]}
        {:doc-id 3 :content "Introduction to Clojure" :tags ["clojure"]}])
   {"programming" "Clojure functional paradigms programming", "clojure" "Clojure Introduction functional programming to"})
test not run
(= (__ [{:doc-id 1 :content "Mathematics basics" :tags ["math", "education"]}
        {:doc-id 2 :content "Advanced mathematics" :tags ["math"]}
        {:doc-id 3 :content "Educational psychology" :tags ["education"]}])
   {"math" "Advanced basics mathematics", "education" "Educational Mathematics basics psychology"})
test not run
(= (__ []) {})
test not run
(= (__ [{:doc-id 1 :content "Physics mechanics" :tags ["science"]}
        {:doc-id 2 :content "Quantum physics" :tags ["science"]}
        {:doc-id 3 :content "Organic chemistry" :tags ["science"]}])
   {"science" "chemistry mechanics Organic Physics Quantum"})


Code which fills in the blank: