我想比较 clojure 中的两个列表,
(def a '(1 2 3 4 5))
(def b '(3 2 7 8 10))
得出结果 (2 3) 或 (3 2)
通过比较两个列表的元素。
(defn compareList[x, y]
(do
(def result '())
(def i 0)
(def j 0)
(while (< i 5)
(while (< j 5)
(if (= (nth x i) (nth y j))
(def result (conj (nth x i) result)))
(def j (inc j))
)
)
result))
(print (compareList a b))
这是我的代码。
但结果是()。我错在哪里?请帮忙。
最佳答案
使用 set 更适合您的情况
(clojure.set/intersection #{1 2 3 4 5} #{3 2 7 8 10})
这将输出
#{2 3}
关于list - 如何在clojure中比较两个列表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33628109/