g a是一个具体的类型,我正在考虑做[g (m a)] -> [m (g a)] -> m [g a],我知道最后一步可以用sequence :: Monad m => t (m a) -> m (t a)完成。我怎样才能完成第一步?
发布于 2017-10-25 20:07:12
这很简单:
sequenceLEdge :: Functor f => LEdge (f a) -> f (LEdge a)
sequenceLEdge (l, r, act) = fmap (\v -> (l, r, v)) act对于三元组和更大的元组,可能应该有Foldable和Traversable实例,所以您不需要手工编写它,但是目前还没有,所以.
https://stackoverflow.com/questions/46940947
复制相似问题