如何将hasmap的其余部分作为clojure中的新hashamp获得?
如果我将哈希图传递给 rest ,我会返回向量列表
user=> (rest { 50 "L", 10 "X", 5 "V", 1 "I" })
([10 "X"] [5 "V"] [1 "I"])
如何将其转换为新的哈希图?
我需要执行此操作的功能
user=> (my-rest-func { 50 "L", 10 "X", 5 "V", 1 "I" })
{ 10 "X", 5 "V", 1 "I" }
更新:由于@AlephAleph提到Hashmap不能保证顺序,因此执行rest操作无法按预期工作。
答案 0 :(得分:1)
user=> (into {} (rest { 50 "L", 10 "X", 5 "V", 1 "I" }))
{ 10 "X", 5 "V", 1 "I" }
答案 1 :(得分:1)
您仍然可以使用已排序的地图:
user> (def data (into (sorted-map-by >) { 50 "L", 10 "X", 5 "V", 1 "I" }))
#'user/data
user> data
;;{50 "L", 10 "X", 5 "V", 1 "I"}
user> (def rest-data (dissoc data (first (keys data))))
#'user/rest-data
user> rest-data
;;=> {10 "X", 5 "V", 1 "I"}
user> (sorted? rest-data)
true