[swift-evolution] Reduce with inout
Ehrlich Family
david at ehrlichfamily.us
Wed Jan 25 06:28:49 CST 2017
Apologies if this reply comes across the list multiple times...
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