This is awesome. Dealing with HTTP requests used to be a pain since they were all signals even when they were used only once, which was not intuitive. This should make the language much more usable.
I prefer the backcalls of LiveScript to any implementation I have seen thus far, coupled with do, you can do some pretty complex things
Re:Elm 0.15: Asynchrony with Tasks
by johnpmayer on Monday April 20, 2015 @08:47PM
(#9411719)
There's probably going to be something like do-notation in Elm 0.16.
Re:Elm 0.15: Asynchrony with Tasks
by CMCDragonkai on Monday April 20, 2015 @09:04PM
(#9411766)
Aren't promises just a monad?
Re:Elm 0.15: Asynchrony with Tasks
by RehnoLindeque on Tuesday April 21, 2015 @07:04AM
(#9413231)
(Task x) has monadic structure, yes (see andThen, succeed). Naturally it also looks like Functor, Applicative, etc.
However, there is no way to work with monads in the abstract in Elm (yet), there is only the concrete API.
Re:Elm 0.15: Asynchrony with Tasks
by CMCDragonkai on Thursday April 23, 2015 @09:07PM
(#9430887)
If it has those primitives, why not just wrap them up into a bind operator?
"This release introduces tasks, a way to define complex asynchronous operations. Similar to C#’s tasks and JavaScript’s promises, tasks make it simple to describe long-running effects and keep things responsive. They also provide a way to wrap up tons of browser APIs in Elm."