[swift-evolution] Reduce with inout

Dave Abrahams dabrahams at apple.com
Mon Jan 16 10:15:23 CST 2017


on Mon Jan 16 2017, Chris Eidhof <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

+1

-- 
-Dave



More information about the swift-evolution mailing list