<div dir="ltr">I like it too! Thanks Pyry! Will change the proposal.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 25, 2017 at 8:09 AM, David Hart via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>Yep, that&#39;s really good.</div><div><div class="h5"><div><br>On 25 Jan 2017, at 08:00, Jonathan Hull via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div>+1  Best so far.<div><br></div><div><div><div><blockquote type="cite"><div>On Jan 24, 2017, at 10:36 AM, Pyry Jahkola via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:</div><br class="m_6723889481789100091Apple-interchange-newline"><div><div dir="auto"><div><span></span></div><div><div><br></div><div>Freak Show wrote:<br><br></div><blockquote type="cite"><div><div>Am I the only one who finds this incredibly ugly and hard to read?</div><div><br></div><div>This is more or less solved by inject:into: idiom.  There is no reason for inout for this particular problem.</div></div></blockquote><br><div>Yeah, the original signature seems more useful. If you go all `inout` like Gwendal suggested, you might as well just iterate over the sequence with `for x in xs`, updating the state as you go.</div><div><br></div><div>But your comment brought another idea to mind: if `mutating:` is considered a bad name for a non-`inout` argument, how about `<b>reduce(into:combine:)`</b>, similar to what Karl suggested earlier in this thread?</div><div><br></div><div>I think it reads very well at the call site, does not suggest `inout`ness of the argument too much (of course there&#39;s no `&amp;` at the call site either), and it&#39;s still easily found with auto-completion:</div><div><br></div><div>    let counts = words.reduce(into: [:]) {</div></div><div>      $0[$1] = ($0[$1] ?? 0) + 1</div><div>    }</div><div><br></div><div>— Pyry</div></div>______________________________<wbr>_________________<br>swift-evolution mailing list<br><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br></div></blockquote></div><br></div></div></div></blockquote><blockquote type="cite"><div><span>______________________________<wbr>_________________</span><br><span>swift-evolution mailing list</span><br><span><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a></span><br></div></blockquote></div></div></div><br>______________________________<wbr>_________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Chris Eidhof</div>
</div>