package letter import "sync" func ConcurrentFrequency(s []string) FreqMap { c := make(chan rune, len(s)) wg := sync.WaitGroup{} for _, v := range s { wg.Add(1) go func(s string) { for _, r := range s { c <- r } wg.Done() }(v) } go func() { wg.Wait() close(c) }() m := FreqMap{} for r := range c { m[r]++ } return m }