你们那么多 workgroup 都在写啥?

其实不就是欺负 Go 少个 sum 函数?


package main

import "fmt"

func sum(max int) int {
	ch := make(chan int, max)

// Map
	for i := range make([]int, max) {
		go func(j int, ch chan int) {
			ch <- j * j
		}(i+1, ch)
	}

// Reduce
	s := 0
	for x := 0; x < max; x++ {
		s += <-ch
	}
	return s
}

func main() {
	fmt.Println(sum(10))
}