It's cute, but the work to manually parallelize is pretty light in Go.<p><pre><code> var a []X
...
done := make(chan bool)
b := make([]Y,len(a))
for i, _ := range a {
go func (j int){
b[j] = process(a[j])
done <- true
}(i)
}
for n:=0; n<len(a); n++ { _ = <-done }</code></pre>