2

我正在收集实例之间连接半格的Semigroup示例。如您所知,连接半格类似于半群,但还需要交换性和幂等性。通过对 hackage 库的快速扫描,我发现了以下示例:

  • Data.Semigroup.Max
  • Data.Semigroup.All
  • Data.Semigroup.Any
  • Data.Map.Append.AppendMap

我很好奇您是否在 Haskell 库中遇到过任何其他(有趣且有用的)加入半格的示例?

4

2 回答 2

1

严格递增的完全比较元素列表(其中相等意味着相同)似乎在Data.List.Ordered.unionfromdata-ordlist包下形成连接半格。

于 2019-12-02T07:24:20.457 回答
0

Data.IntSet.IntSet有 set union 操作作为它<>,这似乎符合您的标准。这对于其他系列也可能是正确的,只要您对病态Eq实例的元素破坏它感到满意。

这对于 也是如此Proxy,但这远非你所能得到的。

于 2019-12-02T19:29:59.433 回答