如何从序列clojure中删除特定事件

时间:2014-10-25 16:04:44

标签: clojure functional-programming

如果我有序列

[1 1 1 1 3 2 4 1]

如何从该序列中删除特定数字?例如

(删除[1 1 1 1 3 2 4 1] 1) - > [3 2 4]

1 个答案:

答案 0 :(得分:4)

您可以使用集合作为谓词来删除,因为集合可以作为函数调用。

(remove #{1} [1 1 1 1 3 2 4 1])
=> (3 2 4)
如果您需要将结果作为向量,

将其包含在(vec ..)中。

这种方法的好处是你可以通过将它们粘贴在集合中来删除许多任意值。如果它只是一个,这当然也有效:

(remove #(= 1 %) [1 1 1 1 3 2 4 1])