Ich möchte einen Kanal von clojure.core.async
von einem anderen Kanal erstellen, der nur bestimmte Nachrichten filtert. Daher habe ich eine Funktion namens Filter < gefunden.Wie erstelle ich einen Kanal von einem anderen mit Wandlern?
=> (def c1 (chan))
=> (def c2 (filter< even? c1))
=> (put! c1 1)
=> (put! c1 2)
=> (<!! c2)
2
Aber die Funktion und seine Freunde sind als veraltet markiert:
Veraltet - diese Funktion entfernt werden. Verwenden Wandler statt
Es gibt einige Möglichkeiten Kanäle mit Wandler zu verwenden, wie chan
mit dem xform
Parameter. Wie kann ich einen neuen Kanal aus einem bestehenden mit Schallwandlern bauen?
Inspiriert von Ihnen mir eine facory Methode erstellt. (defn von-chan [ci xf] (let [co (chan 1 vz)] (Rohr ci co) co)) – sschmeck
nett, froh, dass ich helfen konnte. –
Ich habe eine Version Ihrer Factory-Methode hinzugefügt, um zu versuchen, die Antwort zu vervollständigen, falls andere danach suchen. –