[swift-evolution] [Pitch] Enumerate from offset
BJ Homer
bjhomer at gmail.com
Wed May 10 08:30:43 CDT 2017
I don't see the motivation for removing enumerated(). It's a source-breaking change that seems unjustified to me. Sure, enumerated() isn't as flexible as one might like, and you can certainly reproduce its effects with zip(), but I don't think we've demonstrated that enumerated() is actively harmful. Removing it means obsolescing a bunch of training material, blog posts, etc. What do we gain by removing it?
-BJ
> On May 10, 2017, at 7:24 AM, Xiaodi Wu via swift-evolution <swift-evolution at swift.org> wrote:
>
> When this was previously brought up, I believe the consensus was for removing enumerated and doing nothing else.
>> On Wed, May 10, 2017 at 02:50 Pavol Vaskovic <pali at pali.sk> wrote:
>> One more note:
>>
>>> On Sun, May 7, 2017 at 8:51 PM, Ben Cohen <ben_cohen at apple.com> wrote:
>>
>>>
>>> let words = ["five","four","three","two","one","blastoff!"]
>>> ((0...5).reversed() |> { zip($0, words) })
>>> .forEach { print($0.0,$0.1, separator: ": ") }
>>>
>>
>>> ...
>>
>>>
>>> ((0...5).reversed() |> zip(_, words))
>>> .forEach { print($0.0,$0.1, separator: ": ") }
>>
>>
>> The code above demonstrates that replacing `enumerated` with `zip` gives you anonymous tuples that need to be accessed with positional properties.
>>
>> In contrast, the tuple returned from `enumerated` gives you named tuple (offset: Int, element: Element).
>>
>> Does this change your opinion when you take into account the sorry state of tuple handling in Swift 4, that prevents you from writing concise and readable functional code? See:
>>
>> SR-4745 for (index, (a, b)) in dict.enumerated() produces an error
>> https://bugs.swift.org/browse/SR-4745
>>
>> SR-4738 Can not decompose nested tuple in closure arguments
>> https://bugs.swift.org/browse/SR-4738
>>
>> Best regards
>> Pavol Vaskovic
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170510/38e195bb/attachment.html>
More information about the swift-evolution
mailing list