Alpha - subject to change.
disj[oin]. Returns a transient set of the same (hashed/sorted) type, that
does not contain key(s).
;; Note how we always use the return value of disj! and conj! in these examples
;; for all future modifications, rather than (incorrectly) ignoring the return
;; value and continuing to modify the original transient set. See examples for
;; assoc! and dissoc! for more discussion and examples of this.
user=> (def foo (transient #{'pore-pore 'slow 'yukkuri}))
#'user/foo
user=> (count foo)
3
user=> (def foo (disj! foo 'yukkuri))
#'user/foo
user=> foo
#<TransientHashSet clojure.lang.PersistentHashSet$TransientHashSet@3bd840d9>
user=> (count foo)
2
user=> (def foo (conj! foo 'yukkuri))
#'user/foo
user=> foo
#<TransientHashSet clojure.lang.PersistentHashSet$TransientHashSet@3bd840d9>
user=> (count foo)
3
user=> (def foo (persistent! foo))
#'user/foo
user=> foo
#{yukkuri slow pore-pore}
(defn disj!
"Alpha - subject to change.
disj[oin]. Returns a transient set of the same (hashed/sorted) type, that
does not contain key(s)."
{:added "1.1"
:static true}
([set] set)
([^clojure.lang.ITransientSet set key]
(. set (disjoin key)))
([set key & ks]
(let [ret (disj set key)]
(if ks
(recur ret (first ks) (next ks))
ret))))
Comments top
No comments for disj!. Log in to add a comment.