23 lines
438 B
Go
23 lines
438 B
Go
package set
|
|
|
|
// Map takes a slice of a given type and creates a boolean map with keys
|
|
// of that type.
|
|
func Map[K comparable](in []K) map[K]bool {
|
|
m := make(map[K]bool, len(in))
|
|
for _, i := range in {
|
|
m[i] = true
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
// Apply applies the given function to every element of the slice.
|
|
func Apply[K comparable](in []K, f func(K) K) []K {
|
|
out := make([]K, len(in))
|
|
for i, v := range in {
|
|
out[i] = f(v)
|
|
}
|
|
|
|
return out
|
|
}
|