Clojure有一套能记住插入订单吗?

时间:2017-12-13 15:02:22

标签: clojure

与Java LinkedHashSet一样。所以不要这样:

(-> #{} (conj 1 2 3 4 5) vec)
=> [1 4 3 2 5]

你得到:

 (-> ??? (conj 1 2 3 4 5) vec)
=> [1 2 3 4 5]

1 个答案:

答案 0 :(得分:4)

不在核心库中,但有this one

(use 'flatland.ordered.set)

(ordered-set 4 3 1 8 2)
=> #ordered/set (4 3 1 8 2)

(conj (ordered-set 9 10) 1 2 3)
=> #ordered/set (9 10 1 2 3)

(into (ordered-set) [7 6 1 5 6])
=> #ordered/set (7 6 1 5)