[swift-evolution] ed/ing, InPlace, Set/SetAlgebra naming resolution

Dave Abrahams dabrahams at apple.com
Tue Feb 16 13:16:24 CST 2016


on Tue Feb 16 2016, Xiaodi Wu <swift-evolution at swift.org> wrote:

> Not that I like it, but
> insertNonIntersectingRemoveIntersectingContentsOf(_:) would be the
> stylistically consistent way to convey the right sense.

Did you see Ricardo Parada's suggestions?  I thought some of those were
better.

> On Tue, Feb 16, 2016 at 10:22 AM Dave Abrahams via swift-evolution <
> swift-evolution at swift.org> wrote:
>
>>
>> on Mon Feb 15 2016, Brent Royal-Gordon <swift-evolution at swift.org> wrote:
>>
>> > I think you've ended up with the right approach, and I understand the
>> need to move on, but...
>> >
>> >>     /// Returns the set of elements contained in `self` or in `other`,
>> but not in both `self` and `other`.
>> >>     /// EXISTING: exclusiveOr
>> >>     @warn_unused_result
>> >>     func invertingIntersection(other: Self) -> Self
>> >>
>> >>     /// Replaces `self` with a set containing all elements contained in
>> either `self` or `other`, but not both.
>> >>     /// EXISTING: exclusiveOrInPlace
>> >>     mutating func invertIntersection(other: Self)
>> >
>> > I'm not quite happy with these. I don't like that the mutating form of
>> > `intersection` is `intersect`, but the mutating form of
>> > `invertingIntersection` is `invertIntersection`—it seems like both
>> > methods should change the "intersection" part.
>> >
>> > Have you considered going the opposite direction and combining the verb
>> "intersect" with the adjective "inverse"?
>> >
>> >     /// Returns the set of elements contained in `self` or in `other`,
>> but not in both `self` and `other`.
>> >     /// EXISTING: exclusiveOr
>> >     @warn_unused_result
>> >     func inverseIntersection(other: Self) -> Self
>> >
>> >     /// Replaces `self` with a set containing all elements contained in
>> either `self` or `other`, but not both.
>> >     /// EXISTING: exclusiveOrInPlace
>> >     mutating func inverseIntersect(other: Self)
>> >     // or perhaps even `inverselyIntersect` so it's an adverb
>> >
>> > I wouldn't be surprised if you did, because I could see you trying to
>> > dodge the adverb problem, but I thought it was worth asking.
>>
>> These names all have the wrong sense, including the ones that were
>> decided upon.  “Inverting the intersection” doesn't imply that elements
>> not in the intersection will be merged, which is what happens in a
>> symmetric difference.
>>
>> --
>> -Dave
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-- 
-Dave



More information about the swift-evolution mailing list