I'm unclear on one thing: what's the purpose of core.async/pipe? In your blog article, you write:
(-> source (pipe (chan)) payload-decoder payload-json-decoder) (pipe source destination) just copies elements from source to destination. How is that any different than just using source here directly?: (-> source payload-decoder payload-json-decoder) What have I missed? // Ben On Thu, Feb 19, 2015 at 3:06 AM, Malcolm Sparks <malc...@juxt.pro> wrote: > I have recently written a blog article which explains how to use > transducers with core.async. > > You can find it here: http://malcolmsparks.com/posts/transducers.html > > > On Wednesday, 18 February 2015 21:48:05 UTC, bsmith.occs wrote: >> >> I'm probably just especially dense today, but perhaps someone can give me >> a poke in the right direction. >> >> I'm trying to wrap my head around transducers. >> >> (1) For debugging purposes I'd like to be able to consume the values on a >> channel and put them in a collection to be printed. >> >> I'm doing this at the REPL: >> >> (async/<!! (async/into [] channel)) >> >> This seems needlessly clunky. Is this really the best way to accomplish >> this? >> >> (2) async/map> is deprecated, what's the alternative, exactly? >> >> (let [ch (async/to-chan [1 2 3])] >> (async/map> inc ch)) >> >> AFAICT this would produce a channel, which when consumed would yield the >> values 2 3 4, correct? >> >> Now I suppose if I didn't already have the channel ch, I could create one >> with an associated transformation function, and then stuff the values 1 2 3 >> into it somehow, right? >> >> (let [ch (async/chan nil (map inc))] >> (async/onto-chan ch [1 2 3]) >> ch) >> ;; returns a channel yielding items 2, 3, 4 >> >> But, I'm not clear at all how I can apply the operation (inc) to the all >> values yielded by a channel I already have in my hand. >> >> Any help would be appreciated. I feel like I'm missing some critical bit >> of insight and that async and transducers might just fall into place for me >> if I could only find out what that bit is. >> >> // Ben >> > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.