📅  最后修改于: 2023-12-03 15:21:52.178000             🧑  作者: Mango
在 Clojure 中,集合是非常常见和核心的数据结构。有时我们需要从集合中删除元素,以更新数据结构。
dissoc
函数删除 map 中的键值对dissoc
函数是 Clojure 中使用非常频繁的删除 map 中的键值对的函数。它接受一个 map 和一个或多个键作为参数,并返回一个新的 map,其中指定的键被删除。
(def my-map {:a 1 :b 2 :c 3})
(dissoc my-map :b)
;; => {:a 1 :c 3}
在上面的例子中,我们从 my-map
中删除了键 :b
,并获得了一个新的 map {:a 1 :c 3}
。
remove
函数删除序列中的元素remove
函数是 Clojure 序列中删除元素的函数。它接受一个谓词函数和一个序列作为参数,并返回一个新的序列,其中谓词函数返回 false
的元素被删除。
(def my-seq '(1 2 3 4 5))
(remove even? my-seq)
;; => (1 3 5)
在上面的例子中,我们从 my-seq
中删除了偶数元素,并获得了一个新的序列 (1 3 5)
。
disj
函数删除 set 中的元素disj
函数是 Clojure 中删除 set 中元素的函数。它接受一个 set 和一个或多个元素作为参数,并返回一个新的 set,其中指定的元素被删除。
(def my-set #{1 2 3})
(disj my-set 2)
;; => #{1 3}
在上面的例子中,我们从 my-set
中删除了元素 2
,并获得了一个新的 set #{1 3}
。
splice
函数删除 vector 中的元素splice
函数是 Clojure vector 中删除元素的函数。它接受一个 vector、一个开始下标和一个结束下标作为参数,并返回一个新的 vector,在指定的下标之间的元素被删除。
(def my-vector [1 2 3 4 5])
(splice my-vector 2 4)
;; => [1 2 5]
在上面的例子中,我们从 my-vector
中删除了下标为 2
和下标为 4
之间的元素,并获得了一个新的 vector [1 2 5]
。
Clojure 中有多种方法可以从集合中删除元素,包括:
dissoc
函数删除 map 中的键值对;remove
函数删除序列中的元素;disj
函数删除 set 中的元素;splice
函数删除 vector 中的元素。这些函数都非常方便和易于使用,在实际编程中经常会用到。