Clojure core.async中是否有mapM/mapM_uu?
我正在core.async中寻找一个函数,它可以执行以下操作:Clojure core.async中是否有mapM/mapM_uu?,clojure,monads,core.async,Clojure,Monads,Core.async,我正在core.async中寻找一个函数,它可以执行以下操作: (map-m #(go (inc %)) (range 5)) ; => a channel with one value inside: '(1 2 3 4 5) 一个简单(非惰性)实现: ; mapM :: Monad m => (a -> m b) -> [a] -> m [b] (defn map-m [f col] (go-loop [col col out []
(map-m #(go (inc %)) (range 5))
; => a channel with one value inside: '(1 2 3 4 5)
一个简单(非惰性)实现:
; mapM :: Monad m => (a -> m b) -> [a] -> m [b]
(defn map-m [f col]
(go-loop [col col
out []]
(if (seq col)
(recur (rest col)
(conj out (<! (f (first col)))))
out)))
;mapM::Monad m=>(a->mb)->[a]->m[b]
(defn-map-m[f col]
(循环[列]
out[]]
(如有)(列示序号)
(复发(静止)
(连体)(
标准core.async API有类似的功能吗?可以创建通道将传感器应用于每个输入-可以创建通道将传感器应用于每个输入-