我期望这段代码片段能够生成原始向量,但是以不区分大小写的方式排序.相反,我得到原始矢量不变.为什么我的比较器不起作用?
user=> (ns user (require [clojure.contrib.string :as str]))
nil
user=> (sort
(comparator #(compare (str/upper-case %1) (str/upper-case %2)))
["B" "a" "c" "F" "r" "E"])
("B" "a" "c" "F" "r" "E")
Run Code Online (Sandbox Code Playgroud) 我理解协议如何用于向现有类引入新行为,但是它们(或任何其他Clojure机制)是否可以将状态引入现有类?更具体地说,我希望能够将地图与来自第三方库的类的实例相关联.
现在我正在使用这个:
(instance? clojure.lang.IDeref x)
...但我怀疑可能有更好/更惯用的方法来做到这一点。
clojure ×3