func MapInt64Int16(f func(int64) int16, list []int64) []int16 {
	if f == nil {
		return []int16{}
	}
	newList := make([]int16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
MapInt64Int16 takes two inputs -
1. Function 2. List. Then It returns a new list after applying the function on each item of the list
package fp
func MapIntInt64(f func(int) int64, list []int) []int64 {
	if f == nil {
		return []int64{}
	}
	newList := make([]int64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntInt32(f func(int) int32, list []int) []int32 {
	if f == nil {
		return []int32{}
	}
	newList := make([]int32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntInt16(f func(int) int16, list []int) []int16 {
	if f == nil {
		return []int16{}
	}
	newList := make([]int16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntInt8(f func(int) int8, list []int) []int8 {
	if f == nil {
		return []int8{}
	}
	newList := make([]int8, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntUint(f func(int) uint, list []int) []uint {
	if f == nil {
		return []uint{}
	}
	newList := make([]uint, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntUint64(f func(int) uint64, list []int) []uint64 {
	if f == nil {
		return []uint64{}
	}
	newList := make([]uint64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntUint32(f func(int) uint32, list []int) []uint32 {
	if f == nil {
		return []uint32{}
	}
	newList := make([]uint32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntUint16(f func(int) uint16, list []int) []uint16 {
	if f == nil {
		return []uint16{}
	}
	newList := make([]uint16, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntUint8(f func(int) uint8, list []int) []uint8 {
	if f == nil {
		return []uint8{}
	}
	newList := make([]uint8, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntStr(f func(int) string, list []int) []string {
	if f == nil {
		return []string{}
	}
	newList := make([]string, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntBool(f func(int) bool, list []int) []bool {
	if f == nil {
		return []bool{}
	}
	newList := make([]bool, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntFloat32(f func(int) float32, list []int) []float32 {
	if f == nil {
		return []float32{}
	}
	newList := make([]float32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapIntFloat64(f func(int) float64, list []int) []float64 {
	if f == nil {
		return []float64{}
	}
	newList := make([]float64, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64Int(f func(int64) int, list []int64) []int {
	if f == nil {
		return []int{}
	}
	newList := make([]int, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}
func MapInt64Int32(f func(int64) int32, list []int64) []int32 {
	if f == nil {
		return []int32{}
	}
	newList := make([]int32, len(list))
	for i, v := range list {
		newList[i] = f(v)
	}
	return newList
}