> On Feb 16, 2017, at 4:26 PM, Ben Cohen via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Hi swift-evolution,
> 
> Following up on Ted’s post regarding the opening up of stage 2, I’m starting 
> a thread to discuss improvements to the Dictionary type.
> 
> Here is a list of commonly requested changes/enhancements to Dictionary, all 
> of which would probably be appropriate to put together into a single 
> evolution proposal:
> 
> init from/merge in a Sequence of Key/Value pairs (already raised as SE-100: 
> https://github.com/apple/swift-evolution/blob/master/proposals/0100-add-sequence-based-init-and-merge-to-dictionary.md
>  
> <https://github.com/apple/swift-evolution/blob/master/proposals/0100-add-sequence-based-init-and-merge-to-dictionary.md>).
> make the Values view collection a MutableCollection (as in this PR: 
> https://github.com/apple/swift-evolution/pull/555 
> <https://github.com/apple/swift-evolution/pull/555>).
> Add a defaulting subscript get (e.g. counts[key, default: 0] += 1 or 
> grouped(key, default:[]].append(value)).
> Add a group by-like init to create a Dictionary<K,[V]> from a sequence of V 
> and a closure (V)->K.
> Add Dictionary.filter to return a Dictionary.
> Add Dictionary.mapValues to return a Dictionary (can be more efficiently 
> implemented than composition as the storage layout remains the same).
> Add capacity property and reserveCapacity() method.
> Have Dictionary.removeAtIndex return the Index of the next entry.
> (once we have conditional conformance) Make dictionaries with Equatable 
> values Equatable.
> Please reply here with any comments or questions on the above list, or any 
> additions you believe are important that are missing from it.
> 

If we added an @injective annotation 
(https://en.wikipedia.org/wiki/Injective_function), we could add a .mapToDict 
function that returns another Dictionary with different keys instead of an 
array of tuples.

Come to think of it, we could give sets the same treatment, too.

- Dave Sweeris
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to