完整文档页面(中文翻译)。文末附有来源说明。

阅读英文版

appdevreferencedaml-standard-libraryda-set

DA.Set

Daml 模块 DA.Set 参考文档

DA.Set

DA.Set

注意:仅支持 Daml-LF 1.11 或更高版本。

本模块导出泛型集合类型 Set k 及相关

函数。应使用限定导入,例如:


import DA.Set (Set)

import DA.Set qualified as S

这样可访问 Set 类型,并以

S.lookupS.insertS.fromList 等形式使用各操作。

Set k 内部使用类型 k 的内建序。

这意味着含函数的键不可比较,

会导致运行时错误。为避免此问题,多数集合操作要求 Ord k

实例。建议仅对具有自动

derivingOrd k 实例的键类型使用 Set k


data K = ...

deriving (Eq, Ord)

包括所有非函数类型的内建类型,例如

IntTextBool、在 ab 有默认

Ord 实例时的 (a, b)、在 t 有默认 Ord 时的 Optional t[t]

kv 有默认 Ord 时的 Map k v

以及 k 有默认 Ord 时的 Set k

模块快照

稳定。 状态:`active` 引入版本:`3.4.9` 移除版本:`-` 警告数:`0` 弃用数:`0` 弃用自:`-`

数据类型

data Set k

集合类型,是对 Map 类型的封装。

构造子:

  • Set | Field | Type | Description | | :---- | :--- | :---------- | | map | Map k () | |

实例:

  • instance Foldable Set
  • instance Ord k => Monoid (Set k)
  • instance Ord k => Semigroup (Set k)
  • instance GetField map (Set k) (Map k ())
  • instance SetField map (Set k) (Map k ())
  • instance IsParties (Set Party)
  • instance Ord k => Eq (Set k)
  • instance Ord k => Ord (Set k)
  • instance (Ord k, Show k) => Show (Set k)

函数

empty

empty : Set k

空集。

size

size : Set k -> Int

集合中元素个数。

toList

toList : Set k -> [k]

将集合转为元素列表。

fromList

fromList : Ord k => [k] -> Set k

由元素列表创建集合。

toMap

toMap : Set k -> Map k ()

Set 转为 Map

fromMap

fromMap : Map k () -> Set k

Map 创建 Set

member

member : Ord k => k -> Set k -> Bool

元素是否在集合中?

notMember

notMember : Ord k => k -> Set k -> Bool

元素是否不在集合中? notMember k s 等价于 not (member k s)

null

null : Set k -> Bool

是否为空集?

insert

insert : Ord k => k -> Set k -> Set k

向集合插入元素;若已存在则返回原集合。

filter

filter : Ord k => (k -> Bool) -> Set k -> Set k

保留满足谓词的所有元素。

delete

delete : Ord k => k -> Set k -> Set k

从集合删除元素。

singleton

singleton : Ord k => k -> Set k

创建单元素集合。

union

union : Ord k => Set k -> Set k -> Set k

两集合的并集。

intersection

intersection : Ord k => Set k -> Set k -> Set k

两集合的交集。

difference

difference : Ord k => Set k -> Set k -> Set k
`difference x y` returns the set consisting of all
elements in `x` that are not in `y`.

>>> fromList [1, 2, 3] `difference` fromList [1, 4]
fromList [2, 3]

isSubsetOf

isSubsetOf : Ord k => Set k -> Set k -> Bool

isSubsetOf a bab 的子集时返回 true, 即 a 的每个元素都在 b 中。

isProperSubsetOf

isProperSubsetOf : Ord k => Set k -> Set k -> Bool

isProperSubsetOf a bab 的真子集时返回 true。 即 ab 的子集但不等于 b

孤立类型类实例

  • instance Ord k => Eq (Set k)

  • instance Ord k => Ord (Set k)

  • instance (Ord k, Show k) => Show (Set k)

  • instance IsParties (Set Party)

  • instance Ord k => Semigroup (Set k)

  • instance Ord k => Monoid (Set k)

  • instance GetField map (Set k) (Map k ())

  • instance SetField map (Set k) (Map k ())

  • instance Foldable Set


本文由 CC Privacy Club 根据 Canton Network 官方文档(CC-BY-4.0)整理翻译,仅供学习;实现细节以官方最新版本为准。