[swift-evolution] Reduce with inout

Ehrlich Family david at ehrlichfamily.us
Wed Jan 25 05:57:38 CST 2017


Should combine be allowed to throw, thus forcing this method to rethrow?

------------ Begin Message ------------ 
Group: gmane.comp.lang.swift.evolution 
MsgID: <CAJiQnkQcyhZvRF=TGCs6h8CHPQcbO4gpym63qMzBU4FW9S9T5w at mail.gmail.com> 

I like it too! Thanks Pyry! Will change the proposal.

On Wed, Jan 25, 2017 at 8:09 AM, David Hart via swift-evolution <
swift-evolution-m3FHrko0VLzYtjvyW6yDsg at public.gmane.org> wrote:

>Yep, that's really good.
>
>On 25 Jan 2017, at 08:00, Jonathan Hull via swift-evolution <
>swift-evolution-m3FHrko0VLzYtjvyW6yDsg at public.gmane.org> wrote:
>
>+1  Best so far.
>
>On Jan 24, 2017, at 10:36 AM, Pyry Jahkola via swift-evolution <
>swift-evolution-m3FHrko0VLzYtjvyW6yDsg at public.gmane.org> wrote:
>
>
>Freak Show wrote:
>
>Am I the only one who finds this incredibly ugly and hard to read?
>
>This is more or less solved by inject:into: idiom.  There is no reason for
>inout for this particular problem.
>
>
>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.
>
>But your comment brought another idea to mind: if `mutating:` is
>considered a bad name for a non-`inout` argument, how about `
>*reduce(into:combine:)`*, similar to what Karl suggested earlier in this
>thread?
>
>I think it reads very well at the call site, does not suggest `inout`ness
>of the argument too much (of course there's no `&` at the call site
>either), and it's still easily found with auto-completion:
>
>let counts = words.reduce(into: [:]) {
>$0[$1] = ($0[$1] ?? 0) + 1
>}
>
>— Pyry
>_______________________________________________
>swift-evolution mailing list
>swift-evolution-m3FHrko0VLzYtjvyW6yDsg at public.gmane.org
>https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
>_______________________________________________
>swift-evolution mailing list
>swift-evolution-m3FHrko0VLzYtjvyW6yDsg at public.gmane.org
>https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
>_______________________________________________
>swift-evolution mailing list
>swift-evolution-m3FHrko0VLzYtjvyW6yDsg at public.gmane.org
>https://lists.swift.org/mailman/listinfo/swift-evolution
>
>



------------- End Message ------------- 



Sent from my iPad


More information about the swift-evolution mailing list