What's up with this?
(defn zipmap
"Returns a map with the keys mapped to the corresponding vals."
[keys vals]
(loop [map {}
ks (seq keys)
vs (seq vals)]
(if (and ks vs)
(recur (assoc map (first ks) (first vs))
(next ks)
(next vs))
map)))
Was something wrong with this?:
(defn my-zipmap
"Returns a map with the keys mapped to the corresponding vals."
[keys vals]
(into {} (map vec (partition 2 (interleave keys vals)))))
:)
(Even snappier is (apply hash-map (interleave keys vals)) but that always
produces a hashmap, whereas both of the above produce an arraymap for small
enough sets of keys.)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---