> On Jan 17, 2017, at 16:11, Karl Wagner via swift-evolution 
> <[email protected]> wrote:
> 
> 
>>> On 17 Jan 2017, at 23:09, Karl Wagner <[email protected]> wrote:
>>> 
>>> 
>>> On 16 Jan 2017, at 14:49, Chris Eidhof via swift-evolution 
>>> <[email protected]> wrote:
>>> 
>>> Hi,
>>> 
>>> How does everyone feel about adding a second version of `reduce` to 
>>> `Sequence`? Instead of a `combine` function that's of type `(A, Element) -> 
>>> A`, it would be `(inout A, Element) -> ()`. This way, we can write nice 
>>> functionals algorithms, but have the benefits of inout (mutation within the 
>>> function, and hopefully some copy eliminations).
>>> 
>>> IIRC, Loïc Lecrenier first asked this on Twitter. I've been using it ever 
>>> since, because it can really improve readability (the possible performance 
>>> gain is nice, too).
>>> 
>>> Here's `reduce` with an `inout` parameter, including a sample: 
>>> https://gist.github.com/chriseidhof/fd3e9aa621569752d1b04230f92969d7
>>> 
>>> -- 
>>> Chris Eidhof
>>> _______________________________________________
>>> swift-evolution mailing list
>>> [email protected]
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>> 
>> +1
>> 
>> I would even argue for it to be the default.
> 
> I mean, assuming having two “reduce”s would stress the typechecker, as Joe 
> suggested it might, I would say “inout” makes sense to be the default and the 
> other one can find itself a new name. 

IIRC, the "reduce" name comes from functional programming... should the 
functional style keep the functional name?

- Dave Sweeris 
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to