package main

import "fmt"

func main() {
	list := []int{0, 1, 2, 3, 4, 5, 6, 7}
	mf := func(i int) int {
		return i * 10
	}
	/*
		result := mapFunc(mf, list)
		for _, v := range result {
			fmt.Println(v)
		}
	*/
	println()
	// shorter:
	fmt.Printf("%v", mapFunc(mf, list))
}

func mapFunc(mf func(int) int, list []int) []int {
	result := make([]int, len(list))
	for ix, v := range list {
		result[ix] = mf(v)
	}
	/*
		for ix := 0; ix<len(list); ix++ {
			result[ix] = mf(list[ix])
		}
	*/
	return result
}
