Higher order functions in Go (really unsafe). You probably shouldn't use this.
s1 := []int{1, 2, 3, 4, 5}
s2 := higher.Filter(s1, func(x int) bool { return x > 2 })
s3 := higher.Map(s, strconv.Itoa).([]string)
s := higher.Wrap([]int{1, 2, 3, 4, 5}).
Filter(func(x int) bool { return x > 2 }).
PMap(strconv.Itoa).
Tap(fmt.Println).
Val().([]string)
Map
PMap
Filter
PFilter
Reduce
reduce can't be parallelForEach
PForEach
Tap
PTap
Any
PAny
Every
PEvery
Contains
PContains
Find
PFind
Wrap
Val