4 ms·
I will probably be banned from any Haskell forum after that, but isn't the do notation a async, and the <- a await ?
by lolive 5y ago
I will probably be banned from any Haskell forum after that, but isn't the do notation a async, and the <- a await ?
- nsonha 5y agowhat do you mean by banned? You got it the other way around, async is a special case of the do notation, and await is the special case of <-
- Zababa 5y agoIt's basically that. Example: hello.then(a => return op1(a)).then(b => return op2(b)).then(c => console.log(c); const a = await hello(); const b = await op1(a); const c = await op2(b); console.log(c) In Haskell (>>= is pronounced "bind", \a -> is like a => in JS): hello >>= (\a -> op1 a >>= (\b -> op2 b >>= (\c -> show c))) do { a <- hello; b <- op1 a; c <- op2 b; show c } There is a slight difference, in that JS promises aren't monads. But the idea is still here.
- rsrsrs86 5y agodo { a <- m; return r } Ia desugared to m >>= (\a -> return r) Think of it m.then(function (a) return r)