我如何使用clojure.set / difference?为什么它不能在PersistentSet上运行?

时间:2010-07-06 20:11:47

标签: clojure set

以下代码:

(require '[clojure.set])
(println (clojure.set/difference '("a" "b" "c" "d") '("c" "d" "e" "f")))

给了我以下错误:

java.lang.ClassCastException: clojure.lang.PersistentList (repl-1:47)

我不明白我做错了什么。这不应该打印出来(“a”“b”)?

2 个答案:

答案 0 :(得分:15)

这些是列表,而不是集合。

(println (clojure.set/difference #{"a" "b" "c" "d"} #{"c" "d" "e" "f"}))

答案 1 :(得分:4)

我认为你不需要require '[clojure.set]。它似乎是自动加载核心。刚刚开始一个repl,并输入以下内容(至少对我而言)。

user=> (clojure.set/difference (set '(1 2 3)) (set '(3 4 5)))

\#{1 2}