> 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