News for hackers. Stuff that matters.
Re:Clojure core.async Channels by snprbob86 on Friday June 28, 2013 @05:16PM (#5960392)
You can build analogous versions of map/filter/etc on top of channels. The core.async team is still focused on the primitives, but surely some higher order operations will follow in the not too distant future. I suspect we'll need to wait and see what patterns develop, since they will surely differ from Go a little bit, due to the functional emphasis on Clojure.

I should also mention a key difference between channels and Rx/Observables: The fundamental operations for observable sequences are subscribe & unsubscribe. The fundamental operations for channels are put and take. In the push sequence model, the consumer must give a pointer to itself to the publisher, which couples the two processes and introduces resource management burdon (ie IDisposable).

You can think of a pipeline from A to B in the following ways:

Sequences: B pulls from A

Observables: A pushes to B

Channels: Some process pulls from A and pushes to B

That extra process enables some critical decoupling!

Re:Clojure core.async Channels by hueyp on Saturday June 29, 2013 @01:04AM (#5961546)
> since they will surely differ from Go a little bit, due to the functional emphasis on Clojure

Very interested in this. The trivial Go examples seem much more channel as side effect.

While I still need to wrap my head around the differences (and thanks for the explanation) one quick take away is how much easier it would be to write the higher order operations with core.async channels versus observables.

Re:Clojure core.async Channels by snprbob86 on Monday July 01, 2013 @03:17PM (#5972936)
I took a crack at this, if you're still interested:

https://github.com/brandonbloom/asyncx

Re:Clojure core.async Channels by puredanger on Friday June 28, 2013 @05:21PM (#5960413)
YES ALL THE THINGS