> On Feb 16, 2017, at 17:45, Ben Cohen <ben_co...@apple.com> wrote: > > >>> On Feb 16, 2017, at 5:38 PM, Slava Pestov <spes...@apple.com> wrote: >>> >>> >>>> On Feb 16, 2017, at 5:32 PM, David Sweeris via swift-evolution >>>> <swift-evolution@swift.org> wrote: >>>> >>>> >>>>> On Feb 16, 2017, at 5:17 PM, Ben Cohen <ben_co...@apple.com> wrote: >>>>> >>>>> The win with mapping only the values is that the underlying hash table >>>>> can retain the same physical layout, just with different values in the >>>>> slots, so it can be done faster. >>> >>> Only if the mapped dictionary’s values are the same type (or at least the >>> same size) as in the original dictionary, right? Would the proposed >>> function allow you to mapValues from a [K:V] to a [K:T]? >> >> In both cases the key/bucket structure would be the same, I believe. >> > > Right. Values could be different types, you can still reuse the layout i.e. > allocate the same element-count buffer (even if the size of the element > differs), then put the pairs in the same places they were per the keys, > without going through the whole process of computing hashes, resolving > collisions etc.
That's a neat trick! - Dave Sweeris
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution