我试图找出如何从特定类型的clojure中的向量或列表中删除元素。说,我有一个包含字符串和整数的列表。我想创建一个只包含字符串的列表和另一个包含数字的列表。
我该怎么做?
E.G。 [1 2 "Hello" 3 4 "Bye"]
将成为[1 2 3 4]
和["Hello" "Bye"]
如果我在列表中列出列表或者甚至更深入一步,我也会如何做同样的事情。
答案 0 :(得分:6)
一种可能的方式:
((juxt filter remove) string? [1 2 "Hello" 3 4 "Bye"])
;; [("Hello" "Bye") (1 2 3 4)]
答案 1 :(得分:2)
您可以使用group-by
:
(group-by type [1 2 "hello" 3 4 "Bye"])
;; returns {java.lang.Long [1 2 3 4], java.lang.String ["hello" "Bye"]}