clojure 1.9.0
Простой тест sort-by
для массива символов работает ниже,
user=> (sort-by identity [[\B] [\a]])
([\B] [\a])
, но почему другой тест не прошел sort-by
без учета регистра?
user=> (sort-by (partial map #(Character/toLowerCase %)) [[\B] [\a]])
java.lang.ClassCastException: clojure.lang.LazySeq cannot be cast to java.lang.Comparable
Решение
Использование mapv вместо map делает его.
user=> (instance? clojure.lang.LazySeq (map identity []))
true
user=> (instance? clojure.lang.PersistentVector (mapv identity (map identity [])))
true