<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">While realizing that this name can cause confusion, I&#39;d still prefer `reduce(mutating:_:)`, because it looks like the only readable option to me.</div><div class="gmail_quote">Whatever name will be picked, I agree that traditional reduce without mutation should retain its name.</div><div class="gmail_quote"><br></div><div class="gmail_quote">2017-01-18 5:17 GMT+03:00 Xiaodi Wu via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">A serious possibility would be: `reduce(mutableCopyOf: x) { ... }`.<div><br></div><div>It&#39;s verbose, but the nicer-looking `reduce(mutating: x) { ... }` is incorrect since, as Charles pointed out to Dave, it&#39;s not `x` that&#39;s mutated but rather a mutable copy of it, so it doesn&#39;t matter if `x` itself is declared with `let` or `var`. </div></div></blockquote></div></div></div>