Misc ClojureScript

pmap

(require '[clojure.core.async :as a])

(defn async-pmap [f coll]
  (->> coll
       (map (fn [v] (f v)))
       (a/map vector)))

(a/go (println (a/<! (async-pmap #(a/go (a/<! (a/timeout (rand-int 4000))) (println %) %) (range 10)))))

This will println 0-9 and then print a vector of [0..9]