Clojure reduce, , . , ( ) open-connection.
;; Using reduce directly
(defn reopen-all [usernames]
(reduce
(fn [m name] (assoc m name (open-connection)))
{} usernames))
;; Using into, which uses reduce under the hood
(defn reopen-all [usernames]
(into {} (for [name usernames]
[name (open-connection)])))
, , Python. , . , , atom:
(def usernames [...])
(def cancel-fns (atom nil))
(defn init []
(reset! cancel-fns (reopen-all usernames)))
cancel-all :
(defn cancel-all []
(doseq [cancel-fn (vals @canel-fns)]
(cancel-fn)))