Как я могу использовать clojure.set / разность? Почему он не работает на PersistentSet? - PullRequest
5 голосов
/ 07 июля 2010

Следующий код:

(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 ]

15 голосов
/ 07 июля 2010

Это списки, а не наборы.

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

4 голосов
/ 07 июля 2010

Я думаю, вам не нужно require '[clojure.set].Кажется, автоматически загружается ядро.Просто запустить ответ и набрать ниже работает (по крайней мере для меня).

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

\#{1 2}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...