以下内容如何工作?给定一个项列表[a]和一个将a映射到g b的函数,如何将输入保留在结果列表中?
[a] -> (a -> g b) -> g [(a,b)]
具体来说,我有一份合同编号列表。我想将每个合同ID映射到(ID,有效负载)的元组,其中有效负载是一些合同变量。上面示例中的g b是访存。
答案 0 :(得分:1)
如果您翻转参数顺序会容易一些,那么您可以执行以下操作:
mapAWithArgs : Applicative m => (a -> m b) -> [a] -> m [(a, b)]
mapAWithArgs f = mapA (withArg f)
where
withArg f x = (x,) <$> f x
然后您可以在自己的withIds <- mapAWithArgs fetch <list of contract IDs>
中进行Update