#366
The Article Archivist
 

Difficulty:Easy
Topics:Real life cases List of Maps


Mission: "The Article Archivist" membutuhkan bantuan elo untuk mengkategorikan artikel berdasarkan topiknya. Diberikan sebuah list of maps, di mana setiap map merepresentasikan sebuah artikel yang memiliki :title, :content, dan :tags (list of strings). Tugas elo adalah untuk mengelompokkan artikel-artikel tersebut ke dalam map baru berdasarkan tiap :tag. Setiap :tag akan menjadi kunci, dan nilai adalah list of :titles artikel yang memiliki tag tersebut. Jika sebuah artikel memiliki lebih dari satu tag, artikel tersebut harus muncul di bawah setiap tag yang relevan.
test not run
(= (__ [{:title "Clojure 101" :content "An introduction to Clojure" :tags ["Programming" "Clojure"]}
        {:title "The Joy of Functional Programming" :content "Why functional programming matters" :tags ["Programming"]}
        {:title "Intro to Art" :content "Exploring the basics of art" :tags ["Art"]}])
   {"Programming" ["Clojure 101" "The Joy of Functional Programming"], "Clojure" ["Clojure 101"], "Art" ["Intro to Art"]})
test not run
(= (__ [{:title "Gardening for Beginners" :content "Getting started with gardening" :tags ["Hobby" "Outdoor"]}
        {:title "Advanced Gardening" :content "Deep dive into gardening techniques" :tags ["Hobby"]}])
   {"Hobby" ["Gardening for Beginners" "Advanced Gardening"], "Outdoor" ["Gardening for Beginners"]})
test not run
(= (__ []) {})
test not run
(= (__ [{:title "The History of Mathematics" :content "A look into the history" :tags ["Math", "History"]}
        {:title "Modern Algebra" :content "Understanding algebra" :tags ["Math"]}])
   {"Math" ["The History of Mathematics" "Modern Algebra"], "History" ["The History of Mathematics"]})


Code which fills in the blank: