解析键值对以在 clojure 中排序

Parsing key-value pairs for sorting in clojure

我想使用其中一个键对给定的地图序列进行排序,成本:

({:Date "2012-12-01", :Cost "11.23"} {:Date "2012-12-02", :Cost "25.68"} {:Date "2012-12-03", :Cost "20.55"} {:Date "2012-12-04", :Cost "50.22"})

但是,我不想在 :Cost 的值为字符串时进行排序。我最初尝试使用键 :Cost 的 (sort-by) 函数,但排序是进行字符串比较而不是双重比较。有没有办法解析 :Cost 的值,从字符串到映射序列中的双打?我对 Clojure 和函数式编程比较陌生,非常感谢任何帮助。

您可以使用 Double/parseDouble:

(sort-by #(Double/parseDouble (:Cost %)) input-list)