New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add loop macros and go-for comprehension. #2

Closed
wants to merge 44 commits into
base: master
from

Conversation

Projects
None yet
5 participants
@whilo

whilo commented Jul 5, 2015

Also extend some docs, add more tests and some notes. I would like to have some standardized way to do error handling and higher level operations on channels and hence developed similar macros (1). I have started to reimplement the for-comprehension with channels instead of seqs to significantly reduce boilerplate code fiddeling around the function-boundary limits of core.async (similar to your reduce>) (2). The for-comprehension is still not ideal, as it is mostly eager atm.
My needs are a littel bit different than yours, since I need these macros to work cross-platform between Clojure and cljs. This would be my next step, which is not totally trivial because of the way cljs handles macros. Are you aware of other libraries wrapping similar core.async functionality?

In general I would like to see some explicit syntactic pattern definition for the combination of <, >, !, ? and * to compose macro names for channel operations consistently. It would also be nice to integrate an erlang-like actor library, so that the macros prove consistent in a larger context. This is just an idea though.

Cheers,
Christian

(1) https://github.com/whilo/replikativ/blob/master/src/replikativ/error.cljc
(2) https://github.com/whilo/replikativ/blob/master/src/replikativ/go_for.cljc

@k7d k7d closed this Apr 19, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment