func FilterMapIntInt8(fFilter func(int) bool, fMap func(int) int8, list []int) []int8 {
	if fFilter == nil || fMap == nil {
		return []int8{}
	}
	var newList []int8
	for _, v := range list {
		if fFilter(v) {
			newList = append(newList, fMap(v))
		}
	}
	return newList
}
FilterMapIntInt8 filters given list, then apply function(2nd argument) on each item in the list and returns a new list
Takes 3 inputs
1. Function: takes one input type - int and returns true/false.
2. Function: takes int as argument and returns int8
3. List of type int

Returns:
New List of type int8
Empty list if all there parameters are nil or either of parameter is nil
package fp
func FilterMapIntInt64(fFilter func(int) bool, fMap func(int) int64, list []int) []int64 {
	if fFilter == nil || fMap == nil {
		return []int64{}
	}
	var newList []int64
	for _, v := range list {
		if fFilter(v) {
			newList = append(newList, fMap(v))
		}
	}
	return newList
}
func FilterMapIntInt32(fFilter func(int) bool, fMap func(int) int32, list []int) []int32 {
	if fFilter == nil || fMap == nil {
		return []int32{}
	}
	var newList []int32
	for _, v := range list {
		if fFilter(v) {
			newList = append(newList, fMap(v))
		}
	}
	return newList
}
func FilterMapIntInt16(fFilter func(int) bool, fMap func(int) int16, list []int) []int16 {
	if fFilter == nil || fMap == nil {
		return []int16{}
	}
	var newList []int16
	for _, v := range list {
		if fFilter(v) {
			newList = append(newList, fMap(v))
		}
	}
	return newList
}