package main
import "fmt"

func Map(in []int, fn func(int) int) []int {
  out := []int{} 
  for i := 0; i < len(in); i++ {
    out = append(out, fn(in[i]))
  }
  return out
}

func Filter(in []int, fn func(int) bool) []int {
  out := []int{} 
  for i := 0; i < len(in); i++ {
    pass := fn(in[i])
    if (pass) {
      out = append(out, in[i])
    }
  }
  return out
}

func main() {
	input := []int{1,2,3,4,5}
	fmt.Println(input)

	doubled := Map(input, func(x int) int { return x * 2})
	fmt.Println(doubled)
	
	odds := Filter(input, func(x int) bool { return x % 2 == 0})
	fmt.Println(odds)
	
	evens := Filter(input, func(x int) bool { return x % 2 != 0})
	fmt.Println(evens)
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: