func FilterMapUintPtr(fFilter func(*uint) bool, fMap func(*uint) *uint, list []*uint) []*uint {
	if fFilter == nil || fMap == nil {
		return []*uint{}
	}
	var newList []*uint
	for _, v := range list {
		if fFilter(v) {
			newList = append(newList, fMap(v))
		}
	}
	return newList
}
FilterMapUintPtr 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 and returns (bool).
2. Function: takes uint as argument and returns (uint)
3. Slice of type []*uint

Returns:
New List of type []*uint.
Empty list if all there parameters are nil or either of parameter is nil
package fp
func FilterMapIntPtr(fFilter func(*int) bool, fMap func(*int) *int, list []*int) []*int {
	if fFilter == nil || fMap == nil {
		return []*int{}
	}
	var newList []*int
	for _, v := range list {
		if fFilter(v) {
			newList = append(newList, fMap(v))
		}
	}
	return newList
}
func FilterMapInt64Ptr(fFilter func(*int64) bool, fMap func(*int64) *int64, list []*int64) []*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 FilterMapInt32Ptr(fFilter func(*int32) bool, fMap func(*int32) *int32, list []*int32) []*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 FilterMapInt16Ptr(fFilter func(*int16) bool, fMap func(*int16) *int16, list []*int16) []*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
}
func FilterMapInt8Ptr(fFilter func(*int8) bool, fMap func(*int8) *int8, list []*int8) []*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
}