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 clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to