Калина обнови решението на 19.10.2014 16:31 (преди над 3 години)
+package main
+
+func Map(data []string, mapper func(string) string) []string {
+ for i, value := range data {
+ data[i] = mapper(value)
+ }
+
+ return data
+}
+
+func Filter(data []string, predicate func(string) bool) []string {
+ result := make([]string, 0)
+
+ for _, value := range data {
+ if predicate(value) {
+ result = append(result, value)
+ }
+ }
+
+ return result
+}
+
+func Reduce(data []string, combinator func(string, string) string) string {
+ result := ""
+ for _, value := range data {
+ result = combinator(result, value)
+ }
+
+ return result
+}
+
+func Any(data []string, predicate func(string) bool) bool {
+ for _, value := range data {
+ if predicate(value) {
+ return true
+ }
+ }
+
+ return false
+}
+
+func All(data []string, predicate func(string) bool) bool {
+ for _, value := range data {
+ if !predicate(value) {
+ return false
+ }
+ }
+
+ return true
+}
Може ли да не променяш
data
вMap
-аСпоред мен
Reduce
-а ти не работи заlen(data) != 0
- прочети си условието(последното изречение заReduce
).