Yep, that's really good.
> On 25 Jan 2017, at 08:00, Jonathan Hull via swift-evolution > <[email protected]> wrote: > > +1 Best so far. > >> On Jan 24, 2017, at 10:36 AM, Pyry Jahkola via swift-evolution >> <[email protected]> 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 >> [email protected] >> https://lists.swift.org/mailman/listinfo/swift-evolution > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
