package main import ( "fmt" ) func double(x int) int { return x * 2; } func fmap(f func (int) int, vs []int) []int { rs := make([]int, len(vs)) for i, v := range vs { rs[i] = f(v) } return rs } func main() { nums := []int{1, 2, 3} d := fmap(double, nums) fmt.Println(d) }