Вопрос

Википедия говорит это Reverse().Aggregate(initval, func) правая складка. Это звучит так, как будто это не так, а скорее дешевый полицейский ... может кто -нибудь прокомментировать этот вопрос? Есть ли у C# правильные складки?

Это было полезно?

Решение

Принять определение правой сгиба и проверьте, Reverse().Aggregate(initval, func) вписывается в это.

Определение:

Объединение первого элемента с результатами объединения остальных называется правой складкой

Так что, если вы хотите рассчитать сумму (1, 2, 3). Анкет Если вы просто Aggregate оценка будет (1 + 2) + 3. Анкет если ты Reverse().Aggregate тогда это будет (3 + 2) + 1, что идеально соответствует определению.

Вопрос может быть в том, эффективно ли, потому что Reverse это дорогостоящая работа, но функционально это идеальная правая складка.

Другие советы

Aggregate это настоящая левая складка. Агрегация обратного списка имеет ту же семантику, что и полная (не-ленивая) правая складка в любом обратимом списке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top