function | since v0.0-1211 | clojure.core/assoc! | Edit |
(assoc! tcoll key val)
(assoc! tcoll key val & kvs)
assoc(iate) on transient collection
When applied to a transient map, adds mapping of key(s) to val(s).
When applied to a transient vector, sets the val at index. Note - index must be <= (count vector).
Returns coll.
(def tcoll (transient! {}))
(assoc! tcoll :a 1)
(assoc! tcoll :b 2)
tcoll
;;=> #<[object Object]>
(:a tcoll)
;;=> 1
(:b tcoll)
;;=> 2
(def a (persistent! tcoll))
;;=> {:a 1 :b 2}
When applied to a transient map, adds mapping of key(s) to val(s). When applied to a transient vector, sets the val at index. Note - index must be <= (count vector). Returns coll.
(defn assoc!
([tcoll key val]
(-assoc! tcoll key val))
([tcoll key val & kvs]
(let [ntcoll (-assoc! tcoll key val)]
(if kvs
(recur ntcoll (first kvs) (second kvs) (nnext kvs))
ntcoll))))