sorted-map
タイプのkeys
を呼び出す場合、結果としてseq
はマップのキーと値のペアと同じ順序になると仮定します。ソートマップ上でキーを呼び出すと、結果のseqはソートされた順序であることが保証されますか?
しかし、Jarzkaという名前ClojureDocsからのユーザーは約2年前に、これは言っていた:
私はキーが常に同じ順序で返されていないことに気づきました。通常はそうですが、必ずしもそうではありません。
(残念ながら、私は直接コメントにリンクすることはできません。それはkeys
を記述したページの下部にあります。)
なぜこれがあるかもしれませんか?私は(sort (keys m))
だけで安全でしょうか?
(def m (sorted-map :a 1, :b 2, :c 3))
(def maybe-unsorted-keys? (keys m))
(def sorted-keys (sort (keys m)))