[swift-evolution] SetAlgebra naming update
Dave Abrahams
dabrahams at apple.com
Wed Mar 30 10:48:23 CDT 2016
on Wed Mar 30 2016, Thorsten Seitz <tseitz42-AT-icloud.com> wrote:
>> Am 30.03.2016 um 16:49 schrieb Dave Abrahams <dabrahams at apple.com>:
>>
>>> on Wed Mar 30 2016, Thorsten Seitz <tseitz42-AT-icloud.com> wrote:
>>>
>>> That's certainly an improvement, but why "formIntersection" instead of
>>> "intersect" (in analogy to "subtract")?
>>
>> 1. Consistency with union, which is more closely related than subtract.
>
> I'd prefer consistency with the verb rule here
Which rule is that? As far as I can tell, this is consistent with all
the rules.
> (using formXXX only as last resort).
Though I prefer not to, you can look at this as a last resort if you
like; the alternative you're proposing has the wrong implication, so it
is not a candidate. It would be like using “remainder” as a verb for
integers. Yes, it's a legitimate verb, but it means the wrong thing
(see retail).
>> 2. "Intersect" actually has the wrong meaning as an imperative. If you
>> tell set A to intersect set B, and then ask whether A intersects B
>> (!A.isDisjoint(with: B)), you would expect an answer of true.
>
> Sorry, but I do not agree. With that reasoning I would have to expect
> a.intersection(b) to be not empty.
Yes, that's exactly what I'm saying. If you tell A to intersect B,
presumably when the call completes, A intersects B (i.e. has a non-empty
intersection). That would imply an implementation like, e.g.
mutating func intersect(other: Self) {
self.formUnion(other)
}
which is almost the opposite of the desired implication.
--
Dave
More information about the swift-evolution
mailing list