practicalli / practicalli/clojure
Sorting a collection - year and month
Nobody has claimed this yet.
- Dominant language
- Makefile
- Stars
- 117
- Forks
- 36
- PR merge metrics
- No merged PRs in 30d
Description
I have the following structure {[2019 10] 21, [2020 9] 17} where format of each item is "[year month] amount". How best to sort this structure such that I have the latest "month" last? Data is sorted first by year and then by month
Data generated by
(->> data (map #(assoc % :grouping [(:year %) (:month %)]))
(group-by :grouping)
(map (fn [[g t]]
[g (->> t (map :amount) (reduce +))]))
(into {})))
(group-by (juxt :year :month)) is shorter
e.g. no need for the first map
use (into (sorted-map)) instead of (into {}) to sort by keys
(->> data
(group-by (juxt :year :month))
(map (juxt key #(->> % val (map :amount) (reduce +))))
(into (sorted-map)))
{[2019 10] 21, [2020 9] 17}
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No file, test, or entry point is identified. Review the repository's relevant Clojure learning content for collection-sorting examples and compare it with the year/month grouping example in this issue. Done means the intended ordering guidance is documented in the appropriate location.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- clojure
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100