func Map(vs []string, f func(string) string) []string {
	vsm := make([]string, len(vs))
	for i, v := range vs {
		vsm[i] = f(v)
	}
	return vsm
}
Map calls a function on all the items in a string array
package utils
import (
	"fmt"
	"io/ioutil"
)
func ListFiles(dir string) []string {
	var filenames []string
	files, err := ioutil.ReadDir(dir)
	if err != nil {
		fmt.Println(err)
	} else {
		for _, file := range files {
			filenames = append(filenames, file.Name())
		}
	}
	return filenames
}
func Filter(vs []string, f func(string) bool) []string {
	var vsf []string
	for _, v := range vs {
		if f(v) {
			vsf = append(vsf, v)
		}
	}
	return vsf
}