[swift-evolution] Reduce with inout

Sean Heber sean at fifthace.com
Tue Jan 17 19:46:41 CST 2017


`reuse`

Then we just need an excuse for a function named ‘recycle’...

l8r
Sean


> On Jan 17, 2017, at 7:36 PM, T.J. Usiyan via swift-evolution <swift-evolution at swift.org> wrote:
> 
> `reduceInout`
> 
> On Tue, Jan 17, 2017 at 6:30 PM, Xiaodi Wu via swift-evolution <swift-evolution at swift.org> wrote:
> Agree. The functional style should keep the functional name.
> 
> On Tue, Jan 17, 2017 at 16:18 David Sweeris via swift-evolution <swift-evolution at swift.org> wrote:
> 
> On Jan 17, 2017, at 16:11, Karl Wagner via swift-evolution <swift-evolution at swift.org> wrote:
> 
>> 
>>> On 17 Jan 2017, at 23:09, Karl Wagner <karl.swift at springsup.com> wrote:
>>> 
>>> 
>>>> On 16 Jan 2017, at 14:49, Chris Eidhof via swift-evolution <swift-evolution at swift.org> 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
>>>> swift-evolution at swift.org
>>>> 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
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution



More information about the swift-evolution mailing list