clojure - 排序嵌套映射 Clojure

标签 clojure

我正在尝试按键值对 map 进行排序。给定这张 map :

{:1 {:bar "something" :rank 10} :2 {:bar "other" :rank 20}}

我喜欢按 rank 值排序:

{:2 {:bar "other" :rank 20} :1 {:bar "something" :rank 10} }

可以使用 sort-by 吗?

提前致谢

最佳答案

sort-by 接受一个关键函数以及一个可选的自定义比较器

;              keyfn         comparator
(sort-by (comp :rank second) > 
  {:1 {:bar "something" :rank 10} :2 {:bar "other" :rank 20}})
;=> ([:2 {:bar "other", :rank 20}] [:1 {:bar "something", :rank 10}])

关于clojure - 排序嵌套映射 Clojure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32697459/

相关文章:

lisp - 我应该学习哪种 Lisp?

clojure - 在迭代序列时特殊处理最后一个元素

list - Clojure - 嵌套列表中的对

emacs - 在 Emacs 上同时运行 Clojure 和其他 Lisp

json - 如何在Clojure中将JSON漂亮地打印到文件中?

Clojure Cassandra 驱动程序性能

recursion - Clojure 惰性序列和 letfn

functional-programming - 列表理解比列表抽象更好吗?

clojure - clojure 可以评估混合数量函数链并在需要时返回部分函数吗?

clojure - 惰性序列的实际应用