Возьмите определение правой складки и проверьте, подходит ли ей Reverse().Aggregate(initval, func)
.
Определение:
Объединение первого элемента с результатами объединения остальных называется правомсложите
Так что если вы хотите вычислить сумму (1, 2, 3)
.Если вы просто Aggregate
, оценка будет (1 + 2) + 3
.Если вы Reverse().Aggregate
, то это будет (3 + 2) + 1
, что идеально соответствует определению.
Вопрос может заключаться в том, эффективен ли он, потому что Reverse
- это дорогостоящая операция, но функционально это идеальное правильное сгибание.