Parsing 在clojure中解析用于排序的键值对
我想使用其中一个键Cost对给定的地图序列进行排序:Parsing 在clojure中解析用于排序的键值对,parsing,sorting,clojure,functional-programming,hashmap,Parsing,Sorting,Clojure,Functional Programming,Hashmap,我想使用其中一个键Cost对给定的地图序列进行排序: ({: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的值是字符串时,我不想进行排序。我最初尝试使用key:Cost使用(sort by)函数,但排序是进行字符串比较,而不是双重比较。有没
({: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的值是字符串时,我不想进行排序。我最初尝试使用key:Cost使用(sort by)函数,但排序是进行字符串比较,而不是双重比较。有没有一种方法可以将:Cost的值从字符串解析为映射序列中的double?我对Clojure和函数式编程比较陌生,非常感谢您的帮助 您可以使用
Double/parseDouble
:
(sort-by #(Double/parseDouble (:Cost %)) input-list)
谢谢李!这就像一个符咒,完全符合我的需要。非常感谢