DA.Action
Daml 标准库模块 DA.Action 参考文档。
DA.Action
Action
模块快照
函数
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
foldrA 与 foldr 类似,只不过它的结果是
封装在一个动作中。请注意,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
foldlA 与 foldl 类似,只不过它的结果是
封装在一个动作中。请注意,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)整理翻译,仅供学习;实现细节以官方最新版本为准。