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

阅读英文版

appdevreferencedaml-standard-libraryda-action

DA.Action

Daml 标准库模块 DA.Action 参考文档。

DA.Action

Action

模块快照

Stable. 状态:`active` 引入于:`3.4.9` 删除于:`-` Warnings: `0` 弃用:`0` 已弃用自:`-`

函数

when

when : Applicative f => Bool -> f () -> f ()

Action 表达式的条件执行。例如,

  when final (archive contractId)

如果布尔值final为,则将归档合约contractId ;否则无操作。

该函数具有短路语义,即,当两个参数都是 存在且第一个参数的计算结果为 False,第二个参数 根本不会求值。

unless

unless : Applicative f => Bool -> f () -> f ()

when相反。

该函数具有短路语义,即,当两个参数都是 存在且第一个参数的计算结果为 True,第二个参数 根本不会求值。

foldrA

foldrA : Action m => (a -> b -> m b) -> b -> [a] -> m b

foldrAfoldr 类似,只不过它的结果是 封装在一个动作中。请注意,foldrA 从右到左工作 超过列表参数。

foldr1A

foldr1A : Action m => (a -> a -> m a) -> [a] -> m a

foldr1A 类似于 foldrA 但在呈现时会引发错误 带有空列表参数。

foldlA

foldlA : Action m => (b -> a -> m b) -> b -> [a] -> m b

foldlAfoldl 类似,只不过它的结果是 封装在一个动作中。请注意,foldlA适用于 从左到右遍历列表参数。

foldl1A

foldl1A : Action m => (a -> a -> m a) -> [a] -> m a

foldl1A 类似于 foldlA 但在以下情况下会引发错误 呈现一个空列表参数。

filterA

filterA : Applicative m => (a -> m Bool) -> [a] -> m [a]

使用 applicative 函数过滤列表:仅保留谓词所在的元素。 示例:给定一组 Iou 合约 ID,人们只能找到 GBP。

filterA (fmap (\iou -> iou.currency == "GBP") . fetch) iouCids

replicateA

replicateA : Applicative m => Int -> m a -> m [a]

replicateA n act 执行动作 n 次,收集 结果。

replicateA_

replicateA_ : Applicative m => Int -> m a -> m ()

replicateA类似,但丢弃结果。

>=>

>=> : Action m => (a -> m b) -> (b -> m c) -> a -> m c

Kleisli 箭头从左到右的组合。

<=<

<=< : Action m => (b -> m c) -> (a -> m b) -> a -> m c

Kleisli 箭头从右到左的组合。 @(’>=>’)@,带有参数 翻转了。


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