Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
(merge m1 (zipmap ks (repeat itm))) Demonstration: $ clj Clojure 1.10.3 user=> (def m1 {:a 1 :b 2}) #'user/m1 user=> (def itm 3) #'user/itm user=> (def ks [:c :d :e]) #'user/ks u...
Answer
#2: Post edited
- `(merge m1 (zipmap ks (repeat itm)))`
- Demonstration:
- ```clojure
- user=> (def m1 {:a 1 :b 2})
- #'user/m1
- user=> (def itm 3)
- #'user/itm
- user=> (def ks [:c :d :e])
- #'user/ks
- user=> (merge m1 (zipmap ks (repeat itm)))
- {:a 1, :b 2, :c 3, :d 3, :e 3}
- ```
- * [`repeat`](https://clojuredocs.org/clojure.core/repeat) returns a lazy sequence of the given item.
- * [`zipmap`](https://clojuredocs.org/clojure.core/zipmap) returns a map with the first input (keys) mapped to the second input (vals), and it stops building the map when either input runs out of elements. In this case, it will be the given vector of keys.
- * [`merge`](https://clojuredocs.org/clojure.core/merge) merges all of the input maps into a single map, left-to-right (so any repeated keys will overwrite previous keys).
- `(merge m1 (zipmap ks (repeat itm)))`
- Demonstration:
- ```clojure
- $ clj
- Clojure 1.10.3
- user=> (def m1 {:a 1 :b 2})
- #'user/m1
- user=> (def itm 3)
- #'user/itm
- user=> (def ks [:c :d :e])
- #'user/ks
- user=> (merge m1 (zipmap ks (repeat itm)))
- {:a 1, :b 2, :c 3, :d 3, :e 3}
- ```
- * [`repeat`](https://clojuredocs.org/clojure.core/repeat) returns a lazy sequence of the given item.
- * [`zipmap`](https://clojuredocs.org/clojure.core/zipmap) returns a map with the first input (keys) mapped to the second input (vals), and it stops building the map when either input runs out of elements. In this case, it will be the given vector of keys.
- * [`merge`](https://clojuredocs.org/clojure.core/merge) merges all of the input maps into a single map, left-to-right (so any repeated keys will overwrite previous keys).
#1: Initial revision
`(merge m1 (zipmap ks (repeat itm)))` Demonstration: ```clojure user=> (def m1 {:a 1 :b 2}) #'user/m1 user=> (def itm 3) #'user/itm user=> (def ks [:c :d :e]) #'user/ks user=> (merge m1 (zipmap ks (repeat itm))) {:a 1, :b 2, :c 3, :d 3, :e 3} ``` * [`repeat`](https://clojuredocs.org/clojure.core/repeat) returns a lazy sequence of the given item. * [`zipmap`](https://clojuredocs.org/clojure.core/zipmap) returns a map with the first input (keys) mapped to the second input (vals), and it stops building the map when either input runs out of elements. In this case, it will be the given vector of keys. * [`merge`](https://clojuredocs.org/clojure.core/merge) merges all of the input maps into a single map, left-to-right (so any repeated keys will overwrite previous keys).