(I saw this after I sent my reply to Benjamin G). We can also deprecate it or warn when the type is concretely known to be Set. Not a total solution, but it’s nice to catch some bugs.
> On Oct 17, 2017, at 1:21 PM, Manolo van Ee <[email protected]> wrote: > > > On Tue, 17 Oct 2017 at 21:00, Jonathan Hull via swift-evolution > <[email protected] <mailto:[email protected]>> wrote: > >> On Oct 17, 2017, at 11:47 AM, Michael Ilseman via swift-evolution >> <[email protected] <mailto:[email protected]>> wrote: >> >> `==` conveys substitutability of the two Sequences. This does not >> necessarily entail anything about their elements, how those elements are >> ordered, etc., it just means two Sequences are substitutable. >> `elementsEqual` means that the two Sequences produce substitutable elements. >> These are different concepts and both are independently useful. > > I agree that ‘==‘ conveys substitutability. Here is the issue: > > let a = Set([1,2,3,4,5]) > let b = Set([5,4,3,2,1]) > > a == b //True, they are substitutable > > [1,2,3,4,5].elementsEqual(a) //True > [1,2,3,4,5].elementsEqual(b) //False… I guess they weren’t actually > substitutable after all > > > Thanks, > Jon > _______________________________________________ > swift-evolution mailing list > [email protected] <mailto:[email protected]> > https://lists.swift.org/mailman/listinfo/swift-evolution > <https://lists.swift.org/mailman/listinfo/swift-evolution> > > I read along with most of the thread and like to add one thing. Maybe it’s > not the right way to look at things, but I see protocol extensions as being > part of any type that conforms to the protocol. As it is now, code completion > on a Set will present me with the elementsEqual function, which in my view is > misleading, since it cannot be used in any useful way with a Set. > > By renaming elementsEqual we might be able to make it less misleading, but it > will always be a useless function that is part of the Set namespace (or > Dictionary for that matter). > > I don’t know what the best solution would be, but to me it feels like > distinguishing between Iterable and Sequence, or Ordered and Unordered makes > sense, and it might be good to at least investigate what the impact would be. > > Regards, > /Manolo > > > >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
