:Haskell容器的Ducktyped集合接口。

[bsd3型,数据,图书馆][建议标签]

请参阅Github上的自述文件https://github.com/athanclark/sets#自述


[跳到自述]

下载

注意:此软件包具有元数据修订在阴谋集团的描述中比tarball中包含的更新。要打开包含修订的包,请使用“cabal-get”。

维修人员角落

包装维护人员

对于包维护者和黑客托管者

候选人

  • 没有候选人
版本[RSS(RSS)] 0.0.1,0.0.1.1,0.0.2,0.0.2.1,0.0.2.2,0.0.2.3,0.0.3,0.0.4,0.0.4.1,0.0.5,0.0.5.1,0.0.5.2,0.0.6,0.0.6.1,0.0.6.2版本(信息)
依赖关系 基础(>=4.11 && <5.0),字节删除,可交换的(>=0.0.2),作文,集装箱,逆变的,可散列的,钥匙,mtl公司(<2.3),快速检查(>=2.9.2),半群胚,半群,变压器,变压器底座,无序控制器,矢量,可枯萎的[细节]
许可证 BSD-3条款
版权 2018年Athan Clark
作者 阿森·克拉克
维护人员 athan.clark@gmail.com
修订过的 第1次修订制造商雅各比2022-06-13T23:16:37Z
类别 数据
主页 https://github.com/athanclark/sets#自述文件
Bug跟踪器 https://github.com/athanclark/sets/问题
源回购 头部:git克隆https://github.com/athanclark/sets
已上传 通过阿桑克拉克2019-10-27 T17:59:41 Z
分配
反向依赖关系 4直接,3间接[细节]
下载 总计9558人(过去30天内有30人)
额定值 (尚未投票)[估算人贝叶斯平均]
您的评分
  • λ
  • λ
  • λ
状态 可用文档[生成日志]
上次成功报告时间:2019-10-27[所有1个报告]

集合自述文件-0.0.6.2

[返回包描述]

此包提供了重载术语,通常与类集合类型一起使用,喜欢地图设置集装箱也有非正统的,大多是无用的这里定义的数据类型-处理顺序、唯一性和有限性。

用法

以下操作过载:

二进制运算符:

  • 联盟
  • 交叉
  • 差异
  • 补充

顶部和底部元素:

  • 空的
  • 全部的

元素线操作:

  • 单子
  • 插入
  • 删除

指标和比较:

  • 大小
  • 是子集 是属性子集

每个操作都有自己的类型类。我们还制造了新型包装纸对于列表,对于不同的限制:

  • 有序集合
    • 多个
  • 无序集合
    • 独特
    • 多个

这样,我们可以预期以下工作:

唯一附加::等式a=>[a]->[a]->[a]uniqueAppend xs-ys=unUUSet$fromFoldable xs`union` fromFoldeable ysorderedAppend::Ord a=>[a]->[a]->[a]orderedAppend xs-ys=unOMSet$fromFoldable xs`union` fromFoldeable ys

我们还制作了一些新类型来编码二进制操作单体半群实例:

instance(HasUnion s,HasEmpty s)=>Monoid(Union s)其中mempty=空mappend=联合

多个集合类型

要使用重载术语,它们必须是范围内唯一的术语。为了做到这一点正确,我们需要小心导入容器:

导入合格数据。设置为集合导入数据。Map(Map)--仅指定行为的类型名称foo::映射foo=x`union`ybar::设置。设置bar=a`union`b

这样,我们可以使代码更具可读性,同时仍然具有集合式的直觉。

测试和基准测试

您可以查看结果在这里(警告:这是一个7MB的文本文件-您的浏览器会讨厌您)

这些测试是用QuickCheck构建的-很容易让它们为您工作:

电缆安装--启用测试阴谋测试--show-details=始终

(……或者对于烟囱工人……)

堆栈构建烟囱试验

要进行基准测试(在我的笔记本电脑上通常需要大约10分钟),请运行命令!

电缆安装--启用基准标记阴谋家的长凳

(……污点叠加是一种联合打击……)

堆栈构建stack bench--benchmark-arguments=“--output profile.html”