3

ウィキペディアはそれReverse().Aggregate(initval, func)が正しい折り目だと言っています。これは真実ではないように聞こえますが、むしろ安価な警官です...誰かがこの問題についてコメントできますか?C#には正しい折り目がありますか?

4

2 に答える 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 に答える