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

Jon*_*tow 5 clojure set

以下代码:

(require '[clojure.set])
(println (clojure.set/difference '("a" "b" "c" "d") '("c" "d" "e" "f")))
Run Code Online (Sandbox Code Playgroud)

给我以下错误:

java.lang.ClassCastException: clojure.lang.PersistentList (repl-1:47)
Run Code Online (Sandbox Code Playgroud)

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

May*_*iel 15

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

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

  • JBristow:不,但是你可以把你的列表变成一个集合:(clojure.set/difference(set'(1 2))(set'(1 3)))=>#{2} (3认同)