Hacker News new | ask | show | jobs
by sedatk 331 days ago
Which languages do have such a thing?
2 comments

Rust does this, if you don’t call await on them. You can then await on the join of both.
Is the "join" syntax part of the language?
Why is having it be syntax necessary or beneficial?

One might say "Rust's existing feature set makes this possible already, why dedicate syntax where none is needed?"

(…and I think that's a reasonably pragmatic stance, too. Joins/selects are somewhat infrequent, the impediments that writing out a join puts on the program relatively light… what problem would be solved?

vs. `?`, which sugars a common thing that non-dedicated syntax can represent (a try! macro is sufficient to replace ?) but for which the burden on the coder is much higher, in terms of code readability & writability.)

Then it doesn’t apply in this case.
why?
Because parent asked for a language feature, not runtime: "One thing that most languages are lacking..."
I suppose Haskell does, as `(+) <$> f1 <*> f2`.
In there is also ApplicativeDo that works nicely with this.

    do 
      x <- f1
      y <- f2
      return $ x + y
this is evaluated as applicative in same way.