Clojureのsortシンボルに関して
CodeEvalのSimpleSortingの解法に関する質問です。
https://www.codeeval.com/open_challenges/91/
以下のコードを実行すると、Float型のソートがうまく行きません。
(-10.000, -1.000, -2.000) -> (-1.000, -2.000, -10.000)
なぜなのか、ヒントを教えてください。
(ns simple-sorting.core
(:use [clojure.string :only [split join]])
(:gen-class))
(defn splt-num [s]
(split s #" "))
(defn str->num [coll]
(map read-string coll))
(defn num->float3 [coll]
(vec (map #(format "%.3f" %1) coll)))
(with-open [rdr (clojure.java.io/reader (first *command-line-args*))]
(doseq [line (remove empty? (line-seq rdr))]
(def nums (splt-num line))
(def nss (str->num nums))
(def f3 (num->float3 nss))
(println (join " " (sort f3)))))