On 14/06/2014 7:53 p.m., bearophile wrote:
In this post:
http://forum.dlang.org/post/[email protected]
Walter said, in November:
I agree that async/await has to eventually be added to D. I'm not
convinced it can or should be done with AST macros.
But this blog post shows why the rigid features of C# are not always the
best and the Computation Expressions of F# give more flexibility:
https://mrange.wordpress.com/2014/05/29/why-i-wish-c-never-got-asyncawait/
More info on the Computation Expressions of F# (found at the top of a
Google search, but also found to be the best references on this topic):
tomasp.net/academic/papers/computation-zoo/computation-zoo.pdf
http://msdn.microsoft.com/en-us/library/dd233182.aspx
http://en.wikibooks.org/wiki/F_Sharp_Programming/Computation_Expressions
http://fsharpforfunandprofit.com/series/computation-expressions.html
Bye,
bearophile
There's actually an interesting research paper [0] I found during this
semester about a similar topic.
Supposedly when used its able to speed up IO considerably.
Its possible with D as it stands to implement this (thanks to our
foreach closures ext.). The only reason I haven't done so was because of
reconstructing e.g. register state and thread sleeping overriding.
Basically while blocking instead of sleeping it will execute the next
iteration of a loop. And then go back at the appropriate time. At least
that is how I summarized it.
[0] http://www.barrelfish.org/barrelfish_oopsla11.pdf