首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MonadRandom m => [g (m )] -> m [g ]

MonadRandom m => [g (m )] -> m [g ]
EN

Stack Overflow用户
提问于 2017-10-25 19:48:33
回答 1查看 68关注 0票数 1

g a是一个具体的类型,我正在考虑做[g (m a)] -> [m (g a)] -> m [g a],我知道最后一步可以用sequence :: Monad m => t (m a) -> m (t a)完成。我怎样才能完成第一步?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-25 20:07:12

这很简单:

代码语言:javascript
复制
sequenceLEdge :: Functor f => LEdge (f a) -> f (LEdge a)
sequenceLEdge (l, r, act) = fmap (\v -> (l, r, v)) act

对于三元组和更大的元组,可能应该有FoldableTraversable实例,所以您不需要手工编写它,但是目前还没有,所以.

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46940947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档