PROPOSAL: Add `disjoint` method to `Data.IntSet`
David Feuer
david.feuer at gmail.com
Thu Dec 28 02:27:20 UTC 2017
Would all constructivists actually say so? I'd think there could be some
who think that
disjoint :: (s, t : Set a) -> x : a -> Either (Not (elem x s)) (Not (elem x
t))
in which case being disjoint is a stronger property than just not
overlapping. But of course,
none of this is really relevant to Haskell.
On Dec 19, 2017 6:46 PM, "Andreas Abel" <abela at chalmers.se> wrote:
> I am thinking along the lines of Tikhon.
>
> Sets "overlap" is a rather uncommon term. [If we were all
> constructivists, the situation would be different. Constructively,
> "overlap" is certainly the primitive notion, and "disjoint" only its
> negation.]
>
> We can't introduce a positive term for everything. For instance, we all
> use
>
> not . null
>
> rather than having predicates like "isCons", "inhabited" etc.
>
> On 19.12.2017 19:01, Tikhon Jelvis wrote:
>
>> In practice, I hear people talking about "disjoint" sets all the time—it
>> comes up a lot more often than "overlapping" or "not overlapping". It might
>> have a negative in the name semantically, but it's used as an atomic word
>> in practice. (That is, when people say "disjoint" they're *thinking*
>> "disjoint" as opposed to "not joint" or "not overlapping".)
>>
>> I'm in favor of naming functions with common usage in mind, and I think
>> "disjoint" is the word people use most often in this context.
>>
>> On Tue, Dec 19, 2017 at 7:44 AM, Henning Thielemann <
>> lemming at henning-thielemann.de <mailto:lemming at henning-thielemann.de>>
>> wrote:
>>
>>
>> On Tue, 19 Dec 2017, Víctor López Juan wrote:
>>
>> I'm thinking that `disjoint` is already a negation:
>> (dis- (not) + joint (united)). When composing with `not`, the
>> user gets
>> a double negation `not (disjoint x y)`. There is a then a small
>> mental
>> effort required to go from "not disjoint" to "overlapping".
>>
>> If we are going to have only one of the two properties, I would
>> rather
>> have the positive one (`overlaps`) as primitive. Then `disjoint`
>> would
>> be written "not (overlaps x y)", which reads quite easily.
>> (Or even "not (x `overlaps` y)").
>>
>>
>> I also dislike double negation and think that 'disjoint' is one. I'd
>> prefer to see both 'overlap' and 'disjoint'.
>> _______________________________________________
>> Libraries mailing list
>> Libraries at haskell.org <mailto:Libraries at haskell.org>
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>> <http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries>
>>
>>
>>
>>
>> _______________________________________________
>> Libraries mailing list
>> Libraries at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>
>>
>
> --
> Andreas Abel <>< Du bist der geliebte Mensch.
>
> Department of Computer Science and Engineering
> Chalmers and Gothenburg University, Sweden
>
> andreas.abel at gu.se
> http://www.cse.chalmers.se/~abela/
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20171227/698a32fa/attachment-0001.html>
More information about the Libraries
mailing list