[swift-evolution] [Pitch] Enumerate from offset

Pavol Vaskovic pali at pali.sk
Wed May 10 02:50:05 CDT 2017

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

SR-4738 Can not decompose nested tuple in closure arguments

Best regards
Pavol Vaskovic
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170510/cc04b86a/attachment.html>

More information about the swift-evolution mailing list