[swift-evolution] [Draft] Rename Sequence.elementsEqual
Greg Parker
gparker at apple.com
Mon Oct 16 15:31:14 CDT 2017
> On Oct 16, 2017, at 1:08 PM, Xiaodi Wu via swift-evolution <swift-evolution at swift.org> wrote:
>
> On Mon, Oct 16, 2017 at 13:15 David Sweeris <davesweeris at mac.com <mailto:davesweeris at mac.com>> wrote:
>
> On Oct 16, 2017, at 09:21, Michael Ilseman <milseman at apple.com <mailto:milseman at apple.com>> wrote:
>>
>> Sets are values. If you add, remove, or mutate any elements you have a different Set and thus a potentially different ordering of elements.
>
> From the “value semantics” PoV, yes. But from the “unordered collection of values” PoV, Sets/Dictionaries, being unordered, are semantically free to rearrange the in-memory ordering of their elements without user intervention.
>
> No, they are not semantically free to do so. The semantics of Collection forbid it, because the iteration order must be multi-pass. As long as the value is unchanged, the iteration order is unchanged. That is a documented, public guarantee of the API.
Even if a Set value has a fixed order, a copy of that value may have a *different* order. How many generic algorithm implementations are going to be confused by that?
--
Greg Parker gparker at apple.com <mailto:gparker at apple.com> Runtime Wrangler
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20171016/0fdaabc4/attachment.html>
More information about the swift-evolution
mailing list