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.lookup、S.insert、S.fromList 等形式使用各操作。
Set k 内部使用类型 k 的内建序。
这意味着含函数的键不可比较,
会导致运行时错误。为避免此问题,多数集合操作要求 Ord k
实例。建议仅对具有自动
deriving 的 Ord k 实例的键类型使用 Set k:
data K = ...
deriving (Eq, Ord)
包括所有非函数类型的内建类型,例如
Int、Text、Bool、在 a 与 b 有默认
Ord 实例时的 (a, b)、在 t 有默认 Ord 时的 Optional t 与 [t]、
在 k 与 v 有默认 Ord 时的 Map k v,
以及 k 有默认 Ord 时的 Set k。
模块快照
数据类型
data Set k
集合类型,是对 Map 类型的封装。
构造子:
Set| Field | Type | Description | | :---- | :--- | :---------- | | map | Map k () | |
实例:
instance Foldable Setinstance 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 b 在 a 是 b 的子集时返回 true,
即 a 的每个元素都在 b 中。
isProperSubsetOf
isProperSubsetOf : Ord k => Set k -> Set k -> Bool
isProperSubsetOf a b 在 a 是 b 的真子集时返回 true。
即 a 是 b 的子集但不等于 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)整理翻译,仅供学习;实现细节以官方最新版本为准。