[swift-evolution] [Idea] Replace enumerate() with something more explicit

Brent Royal-Gordon brent at architechies.com
Sun Apr 17 00:55:27 CDT 2016


> With the above definition I would suggest a name change to entries, since a Dictionary's keys are not necessarily numbers, hence enumerate is misleading. 
> 
> Nothing for Set since it isn't subscriptable. 

I think you're slightly confused. All Collections have an Index. Dictionary's Index is not its Key; it is an opaque type which references an entry in its internal table. Set also has an Index; again, it is an opaque type which references an entry in its internal table. Your `enumerate()` (or my `indexed()`) would return these opaque `Index`es on all of these types.

If you want Array to return `(Int, Element)`, Dictionary to return `(Key, Value)`, and Set to not have the operation at all, you're describing something ad-hoc and entirely disconnected from the Collection type.

-- 
Brent Royal-Gordon
Architechies



More information about the swift-evolution mailing list