Voglio creare un canale di clojure.core.async
da un altro che filtra solo messaggi specifici. Pertanto ho trovato una funzione chiamata filtro <.Come creare un canale da un altro con i trasduttori?
=> (def c1 (chan))
=> (def c2 (filter< even? c1))
=> (put! c1 1)
=> (put! c1 2)
=> (<!! c2)
2
Ma la funzione ed i suoi amici sono contrassegnati come deprecato:
Sconsigliato - questa funzione saranno rimossi. Utilizzare trasduttore invece
Ci sono alcuni modi per utilizzare i canali con il trasduttore come chan
con il parametro xform
. Come posso costruire un nuovo canale da uno esistente usando i trasduttori?
Ispirato da voi ho creato un metodo facory usando 'pipe'. (defn da-chan [CI xf] (let [co (chan 1 xf)] (tubo CI co) co)) – sschmeck
bello, contento di aver potuto aiutare. –
ho aggiunto una versione del metodo factory per provare a completare la risposta nel caso in cui altri la cercassero. –