Как я использую clojure.set/difference? Почему это не будет работать над PersistentSet?

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

(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")?

5
задан Jon Bristow 6 July 2010 в 20:11
поделиться

2 ответа

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

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

15
ответ дан 18 December 2019 в 08:26
поделиться

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

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

\#{1 2}
4
ответ дан 18 December 2019 в 08:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: