В задании на
экзЕрцизме нужно было реализовать функции свёртки. В описании задания было написано о функциональном программировании, после чего у меня возникли сомнения в правильности моего решения. Ну т.е. моё решение тесты проходят, но я это делаю циклом. Есть ли какой-то более
правильный -
функциональный способ решения этой задачи?
// Fold list from the right
func (l *IntList) Foldr(fn binFunc, init int) (answer int) {
answer = init
for i := l.Length() - 1; i >= 0; i— {
answer = fn((*l)[i], answer)
}
return
}
// Fold list from the left
func (l *IntList) Foldl(fn binFunc, init int) (answer int) {
answer = init
for i := 0; i < l.Length(); i++ {
answer = fn(answer, (*l)[i])
}
return
}
P.S. - Ещё только начал читать книгу Learning Functional Programming in Go