> Am 19.10.2017 um 01:13 schrieb Adam Kemp <[email protected]>:
>
>
>> On Oct 18, 2017, at 3:38 PM, Thorsten Seitz <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> Now this is not production code (hopefully) but it demonstrates the problem.
>
> A single StackOverflow post is not convincing evidence of a problem that
> leads to many real-world bugs. No one here would dispute that people can get
> confused. That’s why there’s a proposal in the first place. The proposal
> would have prevented this example merely by making the name clearer.
>
> This is at best evidence that a name change is needed. It’s not evidence that
> we should make large changes to the library and language.
>
>> How will I know if the code behind a generic function taking a Sequence as
>> argument will internally use `elementsEqual` so that I cannot use a Set as
>> argument?
>
> More generally, how would you know if someone wrote a function that takes an
> unordered sequence and then writes an algorithm that relies on the order
> anyway? Splitting the Sequence protocol can’t guarantee you won’t have those
> kind of bugs. If the semantics of the function are not clear then that’s a
> naming problem or a library design problem. That’s why the proposal is to fix
> the name so that it’s clear what it actually does.
I agree, it is a naming problem or a library design problem. That’s why I
propose to have different names for both notions (unordered and ordered), so
that it’s clear what the contract of the whole type is (and not just that of a
single method).
-Thorsten
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution