| ▲ | rafaelmn 7 hours ago | |||||||
I knew someone was going to bring up monads that's why I put JS version :) JS took the C# syntax. | ||||||||
| ▲ | WorldMaker 4 hours ago | parent [-] | |||||||
Similarly F#'s computation expressions predate C#'s syntax, and there is some evidence that C# language designers were looking at F#'s computation expressions. Since the Linq work, C# has been very aware of Monads, and very slow and methodical about how it approaches them. Linq syntax is a subtly compromised computation expression and async/await is a similar compromise. It's interesting to wonder about the C# world where those things were more unified. It's also interesting to explore in C# all the existing ways that Linq syntax can be used to work with arbitrary monads and also Task<T> can be abused to use async/await syntax for arbitrary monads. (In JS, it is even easier to bend async/await to arbitrary monads given the rules of a "thenable" are real simple.) | ||||||||
| ||||||||