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

阅读英文版

appdevreferencedaml-standard-libraryda-list-builtinorder

DA.List.BuiltinOrder

文档索引

获取完整文档索引:https://docs.canton.network/llms.txt 在进一步浏览前,可用该文件发现所有可用页面。

DA.List.BuiltinOrder

Daml 模块 DA.List.BuiltinOrder 的参考文档。

DA.List.BuiltinOrder

说明:仅支持 Daml-LF 1.11 及更高版本。

本模块提供基于 Daml-LF 内建序(而非用户自定义序)的标准库函数变体,与 DA.Map 所用顺序相同。

这些函数通常比基于 Ord 的对应函数高效得多。

注意:本模块函数仍要求 Ord 约束,仅为防止传入不可比较的值(如函数);其实现并不使用这些实例。

模块概览

稳定。 Status: `active` Introduced in: `3.4.9` Removed in: `-` Warnings: `0` Deprecations: `0` Deprecated since: `-`

函数

dedup

dedup : Ord a => [a] -> [a]

dedup l 从列表中移除重复元素,仅保留每个元素的首次出现。

dedup 是稳定的,输出元素按其在输入中首次出现的顺序排列。若不需要稳定性,可考虑更高效的 dedupSort

>>> dedup [3, 1, 1, 3]
[3, 1]

dedupOn

dedupOn : Ord k => (v -> k) -> [v] -> [v]

在应用给定函数后再去重的 dedup 版本。示例:dedupOn (.employeeNo) employees

dedupOn 是稳定的。若不需要稳定性,可考虑更高效的 dedupOnSort

>>> dedupOn fst [(3, "a"), (1, "b"), (1, "c"), (3, "d")]
[(3, "a"), (1, "b")]

dedupSort

dedupSort : Ord a => [a] -> [a]

dedupSortdedup 的更高效变体,不保留输入元素顺序; 输出按 Daml-LF 内建序排序。

>>> dedupSort [3, 1, 1, 3]
[1, 3]

dedupOnSort

dedupOnSort : Ord k => (v -> k) -> [v] -> [v]

dedupOnSortdedupOn 的更高效变体,不保留输入元素顺序; 输出按函数返回值排序。

对重复项,输出包含列表中第一个元素。

>>> dedupOnSort fst [(3, "a"), (1, "b"), (1, "c"), (3, "d")]
[(1, "b"), (3, "a")]

sort

sort : Ord a => [a] -> [a]

按 Daml-LF 序排序列表。

在内建 Daml-LF 序下相同的值不可区分,因此此处稳定性无关。

>>> sort [3,1,2]
[1,2,3]

sortOn

sortOn : Ord b => (a -> b) -> [a] -> [a]

sortOn fsort 的变体,允许按给定函数的返回值排序。

sortOn 是稳定的:映射到相同排序键的元素按输入位置排序。

>>> sortOn fst [(3, "a"), (1, "b"), (3, "c"), (2, "d")]
[(1, "b"), (2, "d"), (3, "a"), (3, "c")]

unique

unique : Ord a => [a] -> Bool

当且仅当给定列表无重复元素时返回 True。

>>> unique [1, 2, 3]
True

uniqueOn

uniqueOn : Ord k => (a -> k) -> [a] -> Bool

在应用函数后,当且仅当列表无重复元素时返回 True。

>>> uniqueOn fst [(1, 2), (2, 42), (1, 3)]
False

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