on Sun Apr 17 2016, Howard Lovatt <[email protected]> wrote:

> Yes I am proposing something like protocol Subscriptable that defines the
> subscript operation and indices and entries properties.

That sounds like a protocol that is just a bag of syntax without
semantic requirements, which—forgive my pretentious tone—goes against
the principles of generic programming on which the standard library was
founded.  We won't have a “plusable” for things you can apply the “+”
operator to, for similar reasons.

> On Sunday, 17 April 2016, Brent Royal-Gordon
> <[email protected]> wrote:
>
>     > 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

-- 
Dave

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to