我想从另一个仅筛选特定消息的通道创建
clojure.core.async
通道。因此,我找到了一个名为 filter< 的函数。=> (def c1 (chan))
=> (def c2 (filter< even? c1))
=> (put! c1 1)
=> (put! c1 2)
=> (<!! c2)
2
但是这个函数及其相关函数已被标记为过时:
过时 - 这个函数将会被移除。使用transducer替代。
有一些方法可以使用transducer来与通道结合,例如使用带有xform参数的chan
函数。如何使用transducer从现有通道构建新的通道?
pipe
创建了一个工厂方法。(defn from-chan [ci xf] (let [co (chan 1 xf)] (pipe ci co) co))
- sschmeck