我尝试从一组元素中删除元素,这些元素存在于 Clojure 中的不同序列中。但clojure.set/difference
似乎并没有像我预期的那样工作。我的错误在哪里?
一些例子:
删除空序列
(difference #{3 2} '())
结果:(#{3 2}
如预期)
删除一些元素
(difference #{3 2} '(3))
结果:(#{2}
如预期)
移除集合中不存在的元素
(difference #{3 2} '(1))
结果:(#{3 2}
如预期)
删除所有元素
(difference #{3 2} '(2 3))
结果:(#{}
如预期)
移除更多存在的元素
(difference #{3 2} '(1 2 3))
而不是结果我得到IllegalArgumentException contains? 类型不支持:clojure.lang.PersistentList clojure.lang.RT.contains (RT.java:814)
预期结果:#{}
clojure.set/difference
因此,当结果是空集并且要删除的元素集具有比原始集更高的基数时,该函数似乎失败了。但问题是:为什么这不起作用?我希望这是clojure.set/difference
.