1

以下功能 -

mayBeMempty :: (Eq a, Semigroup a) => a -> a -> Bool
mayBeMempty candidate ref = candidate <> ref == ref

是 的(效率较低的)泛化Data.Set.isSubSetOf。它检查第一个参数是否“包含”在第二个参数中,并且总是True在第一个参数存在mempty时返回(当它返回时False,已知它不是mempty)。

有谁知道这个函数或概念是否已经以某个名称甚至是现有的类型类存在(在这种情况下它的效率不会低于isSubSetOf)?

4

2 回答 2

0

我用 Hoogle 进行了搜索,并认为没有预先实现的版本。

TBH,我真的不知道如何提高效率。

于 2018-12-25T23:49:27.067 回答
0

PartialOrdleq我一直在寻找的。

IIUC,不同之处在于它不是为符合我所描述的规则而设计的Semigroup,而是被设计为以这种方式工作,Lattice在同一个包中定义,这在某些方面类似于半群,但更适合事物喜欢集合,其中将某些事物与自身合并会产生自身。

于 2018-12-27T09:27:37.540 回答