Мартин обнови решението на 18.10.2014 14:51 (преди над 3 години)
+package main
+
+func Map(data []string, mutator func(string) string) []string {
+ result := make([]string, len(data))
+ lenght := len(data)
+ for i := 0; i < lenght; i++ {
+ result[i] = mutator(data[i])
+ }
+ return result
+}
+
+func Filter(data []string, predicate func(string) bool) []string {
+ result := make([]string, 1)
+ lenght := len(data)
+ for i := 0; i < lenght; i++ {
+ if predicate(data[i]) {
+ result = append(result, data[i])
+ }
+ }
+ return result
+}
+
+func Reduce(data []string, combinator func(string, string) string) string {
+ var result string
+ lenght := len(data)
+ for i := 0; i < lenght; i++ {
+ result = combinator(result, data[i])
+ }
+ return result
+}
+
+func All(data []string, predicate func(string) bool) bool {
+ lenght := len(data)
+ for i := 0; i < lenght; i++ {
+ if predicate(data[i]) == false {
+ return false
+ }
+ }
+ return true
+}
+
+func Any(data []string, predicate func(string) bool) bool {
+ lenght := len(data)
+ for i := 0; i < lenght; i++ {
+ if predicate(data[i]) == true {
+ return true
+ }
+ }
+ return false
+}