// slice filter function
package main
import (
"fmt"
)
func main() {
s := []int{1,2,3,4,5,6,7,8,9,10}
// var fn func(int) bool
// fn = func(n int) bool {
// if n%2 == 0 {
// return true
// }
// return false
// }
match1 := Filter(s, odd)
fmt.Println(match1)
match2 := Filter(s, even)
fmt.Println(match2)
}
func Filter(s []int, fn func(int) bool) (match []int) {
for _, num := range s {
if fn(num) {
match = append(match, num)
}
}
return
}
func odd(n int) bool {
if n%2 == 1 {
return true
}
return false
}
func even(n int) bool {
if n%2 == 0 {
return true
}
return false
}