Если это лучшее (или хорошее) решение, может кто-нибудь объяснить, что именно он делает?
(sort
(reduce (fn [x [y z]] (assoc x y z)) {} (System/getProperties)))
Где его можно использовать, например, для печати свойств системы:
(def p
(sort
(reduce (fn [x [y z]] (assoc x y z)) {} (System/getProperties))))
(defn pnv [nv] (println (str (key nv) "=\"" (val nv) "\"")))
(doseq [nv p] (pnv nv))
Если это не очень хороший подход, пожалуйста, предоставьте лучший. Спасибо
Я знаю, что могу сделать:
(doseq [nv (System/getProperties)] (pnv nv))
Но сортировка не работает:
(doseq [nv (sort (System/getProperties))] (pnv nv))
ClassCastException java.util.Hashtable$Entry cannot be cast to java.lang.Comparable clojure.lang.Util.compare (Util.java:104)
Решение , предоставленное amalloy :
(doseq [nv (into (sorted-map) (System/getProperties))] (pnv nv))