package datascience // GroupBy agrupa los elementos de un slice segĂșn la clave devuelta por keyFn. func GroupBy[T any, K comparable](xs []T, keyFn func(T) K) map[K][]T { groups := make(map[K][]T) for _, x := range xs { k := keyFn(x) groups[k] = append(groups[k], x) } return groups }