func FilterMapIntInt32Ptr(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
}
FilterMapIntInt32Ptr 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 *int32
3. List of type *[]int

Returns:
New List of type *int32
Empty list if all there parameters are nil or either of parameter is nil
package fp
func FilterMapIntInt64Ptr(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
}