[swift-evolution] Removing enumerated?

Matthew Johnson matthew at anandabits.com
Tue Jan 31 10:52:46 CST 2017


> On Jan 31, 2017, at 10:46 AM, Chris Eidhof <chris at eidhof.nl> wrote:
> 
> I agree that it's very useful. I use it regularly. The documentation isn't that unclear, imo. To me, the underlying problem isn't enumerated. I think the underlying cause is that collections aren't indexed with zero based indices.if you don't understand this (which is the case for many experienced programmers new to Swift) it's hard to understand, and (too) easy to make a mistake.

This indicates that the underlying problem is *not* enumerated at all.  The underlying problem is that Swift is still a relatively new language and it does some things differently than other languages (for very good reasons).

You’re making a great case for the need to continue spreading knowledge about Swift’s collection model through the community.

I don’t think it’s problematic for an experienced programmer who is new to the language to bump up against this when the reach for `enumerated`.  They’re going to need to learn the collection model sooner or later.  

> 
> On Tue, 31 Jan 2017 at 17:41, Matthew Johnson via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> On Jan 31, 2017, at 10:36 AM, Xiaodi Wu via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> 
>> I totally sympathize with users being confused. It's an interesting idea to move it to Array only.
>> 
>> The thing is, it does make sense (and wouldn't be confusing) to enumerate a dictionary or set. Moreover, the behavior is _exactly_ what it says on the tin: when you enumerate something in real life, there is no sense in which the number is related to some sort of index. Can we fix this by documentation? Like, a big blaring "don't use this when you want the index”?
> 
> +1.  A similar method on collection that provides indices might be useful but that doesn’t mean we should remove `enumerated`.  User confusion should be addressed by documentation.
> 
>> On Tue, Jan 31, 2017 at 09:35 Ole Begemann via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> On 31/01/2017 16:19, Ole Begemann via swift-evolution wrote:
>> > Here are three previous discussion about this topic:
>> >
>> > 1) December 2015: [Idea] Add an (Index,    Element) sequence to
>> > CollectionType
>> > https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151221/004561.html <https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151221/004561.html>
>> > and
>> > https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151228/004626.html <https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151228/004626.html>
>> >
>> >
>> > 2) April 2016: [Idea] Replace enumerate() with something more explicit
>> > https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160411/015074.html <https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160411/015074.html>
>> >
>> >
>> > 3) September 2016: [Proposal draft] Introducing `indexed()`    collections
>> > https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160926/027355.html <https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160926/027355.html>
>> 
>> To clarify, the discussions I linked to don't all propose to remove or
>> replace `enumerated()`, but they all talk about the potential confusion
>> about what `enumerated()` does and does not do.
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
> -- 
> Sent from my phone

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170131/fd00ef9b/attachment.html>


More information about the swift-evolution mailing list