Honestly, I'm against having core.async as anything other than a normal macro. The less built-in magic the better, plus its nice to know that almost everything I use, I could in theory build myself without hacking the language itself, should I ever want to. The more features that get special treatment by the compiler or runtime, the less this is true.
Also, while I'm all for allowing macros to transform code in go blocks that contains <! and >! (and it seems in Clojure you can do this and this is merely a bug in cljs), I personally think that disallowing <! and >! in functions (outside of the technical limitations that we currently have) is not necessarily a terrible thing. I mean, sure, it would be nice to lift restrictions so that more powerful abstractions can be built on top and I would certainly be all for doing so, should somebody figure out a way to avoid the current technical limitations, but if this were to happen, I think everyone should still be very strongly discouraged from using <! and >! anywhere other than in the go block. It keeps the code simple by forcing the bulk of it to be nice pure functional code (at least in respect to channel operations) - the Clean, essentially - and this greatly helps understanding and testing of code IMHO. I guess, I would love for the ability only to build better abstractions, not for day to day use. But perhaps macros serve that purpose well enough already? (once the cljs bug is fixed, at least) On 23 July 2014 14:04, Kyle Cordes <[email protected]> wrote: > On Wednesday, July 23, 2014 at 2:06 AM, Tom Locke wrote: > > @Kyle - it's not a deep problem with Clojure extensibility but just a > bug in the ClojureScript implementation. > > > > > I agree it is not a problem per se; but the feature I would really like, > which I believe would require the approach I described, would be to allow > the full set of Clojure constructs to be composed arbitrarily with “go”. > For example a <! could live in a function, called by another function, > called via a protocol, via a macro, called itself via a multi method, in > another namespace, in another file, which happens to be called via a go > somewhere. > > (And I’d like a pony.. :-) ) > > -- > Kyle Cordes > http://kylecordes.com > > > > -- > Note that posts from new members are moderated - please be patient with > your first post. > --- > You received this message because you are subscribed to the Google Groups > "ClojureScript" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/clojurescript. > -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups "ClojureScript" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/clojurescript.
