Аспарух обнови решението на 18.10.2018 12:38 (преди 10 месеца)
+package main
+
+func Repeater(s, sep string) func(int) string {
+
+ return func(cnt int) string {
+ result := ""
+ for i := 0; i < cnt; i++ {
+ result += s
+ if i != cnt-1 {
+ result += sep
+ }
+ }
+ return result
+ }
+
+}
+
+func Generator(gen func(int) int, initial int) func() int {
+
+ return func() int {
+ prev := initial
+ step := gen(initial)
+ initial = step
+ return prev
+ }
+
+}
+
+func MapReducer(mapper func(int) int, reducer func(int, int) int, initial int) func(...int) int {
+
+ result := 0
+ return func(numbers ...int) int {
+
+ for _, number := range numbers {
+ result = reducer(mapper(number), result)
+ }
+ return initial + result
return reducer(initial,result)
+ }
+
+}
Порчети условието отново и по - внимателно. Има ли нещо, което да не си направил както изрично се казва? Тествай малко повече решението си с разнообразни типове от операции и функции.