[swift-evolution] Reduce with inout

Chris Eidhof chris at eidhof.nl
Mon Jan 16 07:49:31 CST 2017


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170116/4cc43a9d/attachment.html>


More information about the swift-evolution mailing list