Стоян обнови решението на 21.10.2014 11:43 (преди над 3 години)
+package main
+
+func All(data []string, predicate func(string) bool) bool {
+ for _, value := range data {
+ if predicate(value) == false {
+ return false
+ }
+ }
+
+ return true
+}
+
+func Any(data []string, predicate func(string) bool) bool {
+ for _, value := range data {
+ if predicate(value) {
+ return true
+ }
+ }
+
+ return false
+}
+
+func Map(data []string, mutator func(string) string) []string {
+ slice := make([]string, 0, len(data))
+ for _, value := range data {
+ slice = append(slice, mutator(value))
+ }
+
+ return slice
+}
+
+func Filter(data []string, predicate func(string) bool) []string {
+ slice := make([]string, 0, len(data))
+ for _, value := range data {
+ if predicate(value) {
+ slice = append(slice, value)
+ }
+ }
+
+ return slice
+}
+
+func Reduce(data []string, combinator func(string, string) string) string {
+ result := ""
+ for _, value := range data {
+ result = combinator(result, value)
+ }
+
+ return result
+}
Прочети си условието по - внимателно. Пробва ли Reduce
с combinator
, което не е конкатениране?
Написах ги по-рано, а ги предадох днес. Сигурно ли е, че условието не е било променяно ?
Преди 7 дена е било направено допълнение: https://github.com/fmi/go-homework/commit/b65a738c42464f7612ccac0e29152d823e1b3393
Ще ти въстановим точките от тестовете за reduce.
Благодаря!