维基百科说这Reverse().Aggregate(initval, func)
是一个正确的折叠。这听起来不是真的,而是一个廉价的警察......有人可以评论这个问题吗?C# 有正确的折叠吗?
问问题
657 次
2 回答
1
定义右折叠并检查是否Reverse().Aggregate(initval, func)
适合它。
定义:
将第一个元素与组合其余元素的结果组合称为右折叠
所以如果你想计算(1, 2, 3)
. 如果你只是Aggregate
评价会(1 + 2) + 3
。如果你Reverse().Aggregate
那么它将是(3 + 2) + 1
,这完全符合定义。
问题可能是它是否有效,因为Reverse
操作昂贵,但在功能上它是完美的正确折叠。
于 2010-12-08T20:10:40.383 回答
0
Aggregate
是真正的左折叠。聚合反向列表与任何可逆列表上的完整(非惰性)右折叠具有相同的语义。
于 2010-12-08T20:06:39.167 回答