> On 18 Jan 2017, at 12:26, Xiaodi Wu via swift-evolution > <swift-evolution@swift.org> wrote: > > Thought: if the idea is performance and not drop-in replacement, why force > the user to incur two copies? If the initial value were inout, this function > would be more unambiguous even without a new name, and at _worst_ the user > has to declare a variable with var, a worthwhile trade-off to save two copies.
That’s what I thought also until just now, but then why wouldn’t you just use a for … in loop? i.e. instead of var foo = 0 let bar: [SomeType] = ... bar.reduce(mutating: &foo, someFunction) You would write var foo = 0 let bar: [SomeType] = … for e in bar { someFunction(&foo, e) } which is a bit more readable IMO _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution