There is no need to create a slice of single-value channels in Go, a single channel with or without a buffer more idiomatically implements the pattern.
Rob Pike explicitly said, no generics
This is also not true, to the best of my knowledge.
I get that core/async Clojure code follows the Go channel example fairly close, but it seems misleading wrt the actual problem of starting two expensive computations and aggregating their results.
This can be done in Clojure using futures as succinctly as it’s shown to be in Scala.
There is no need to create a slice of single-value channels in Go, a single channel with or without a buffer more idiomatically implements the pattern.
This is also not true, to the best of my knowledge.
Here’s a more idiomatic version of the Go code.
I get that core/async Clojure code follows the Go channel example fairly close, but it seems misleading wrt the actual problem of starting two expensive computations and aggregating their results.
This can be done in Clojure using futures as succinctly as it’s shown to be in Scala.
Yup, Scala example could be translated directly as: