0

以下如何工作?给定一个项目列表 [a] 和一个将 a 映射到 gb 的函数,我如何在结果列表中保留输入?

[a] -> (a -> g b) -> g [(a,b)]

具体来说,我有一个合同 ID 列表。我想将每个合同 ID 映射到 (id, payload) 的元组,其中有效载荷是一些合同变量。上面例子中的 gb 是 fetch。

4

1 回答 1

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

于 2019-09-17T13:24:01.893 回答