【发布时间】:2014-11-15 16:50:45
【问题描述】:
它是这样工作的:
pcc.core=> (compare [4] [2 2])
-1
pcc.core=> (compare [4 0] [2 2])
1
我想要一个带有“字符串语义”的向量比较器:
pcc.core=> (compare-like-strings [4] [2 2])
1 ;; or 2, for that matter
pcc.core=> (compare-like-strings [4 0] [2 2])
1
有没有一种轻量级的好方法来获得我想要的东西?
【问题讨论】:
-
为什么是“字符串语义”?我希望字符串比较具有与向量相同的行为(这就是 Clojure 和 Java 的行为至少)。
-
@AlexMiller,
(compare "abc" "ac")=> -1,但(compare [1 2 3] [1 3])=> 1。 -
@AlexMiller 传统上按字典顺序比较字符串,Clojure 和 Java 都继承了这一传统。不同之处在于向量在内容之前比较长度,而字符串仅在前 N 项都比较相同时才使用长度。
-
啊,我明白你的意思了。
标签: vector clojure comparator