move: advanced funcs to functional programming
This commit is contained in:
17
27-functional-programming/log-parser-exp/groupby.go
Normal file
17
27-functional-programming/log-parser-exp/groupby.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package main
|
||||
|
||||
func groupBy(results []result, keyer groupFunc) []result {
|
||||
grouped := make(map[string]result, len(results))
|
||||
|
||||
for _, cur := range results {
|
||||
key := keyer(cur)
|
||||
grouped[key] = cur.add(grouped[key])
|
||||
}
|
||||
|
||||
out := results[:0]
|
||||
for _, r := range grouped {
|
||||
out = append(out, r)
|
||||
}
|
||||
|
||||
return out
|
||||
}
|
Reference in New Issue
Block a user