相关疑难解决方法(0)

除了可折叠之外,Traversable还有什么"独特的方法"?

Foldable是一个超类Traversable,类似于Functor超类的ApplicativeMonad.

类似的情况下Monad,它可以基本上实现fmap

liftM :: Monad m => (a->b) -> m a -> m b
liftM f q = return . f =<< q
Run Code Online (Sandbox Code Playgroud)

我们也可以效仿foldMap

foldLiftT :: (Traversable t, Monoid m) => (a -> m) -> t a -> m
foldLiftT f = fst . traverse (f >>> \x -> (x,x))
           -- or: . sequenceA . fmap (f >>> \x -> (x, x))
Run Code Online (Sandbox Code Playgroud)

使用Monoid m …

containers haskell fold traversable

8
推荐指数
1
解决办法
316
查看次数

标签 统计

containers ×1

fold ×1

haskell ×1

traversable ×1