Examples in Go
Partitions the list into groups.
package main

import (
	"fmt"
)

func main() {
	a := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
	// Here, we know how many paritions we need for grouping by even/odd numbers.
	partitions := make([][]int, 2)
	for _, n := range a {
		idx := n % 2
		partitions[idx] = append(partitions[idx], n)
	}
	fmt.Println(partitions)

	// Next we try grouping by first letter of a word.
	// Here, we use a map to access buckets by a key.
	b := []string{"orange", "apple", "grapefruit", "avocados"}
	partitions2 := map[string][]string{}
	for _, str := range b {
		key := string(str[0])
		partitions2[key] = append(partitions2[key], str)
	}
	fmt.Println(partitions2)
}
Last Run  :
[[0 2 4 6 8] [1 3 5 7 9]]
map[a:[apple avocados] g:[grapefruit] o:[orange]]
package main

import (
  "fmt"
)

func main() {
  commits := map[string]int{
      "rsc": 3711,
      "r":   2138,
      "gri": 1908,
      "adg": 912,
  }
  fmt.Println(commits)
}