class (Functor t, Foldable t) => Traversable t where
traverse :: Applicative f => (a -> f b) -> t a -> f (t b)
traverse g = sequenceA . fmap g
sequenceA :: Applicative f => t (f a) -> f (t a)
sequenceA = traverse id
如何使用它同时继承和Traversable
的事实?Foldable
Functor
t
作为可遍历类型意味着t
也是函子类型和可折叠类型。
我看到这t
是一个函子类型的事实,即fmap
,用于traverse
.
t
可折叠类型是否在某处使用?
使用折叠式traverse
的事实吗?t
使用哪个事实sequenceA
:t
作为函子类型,t
作为可折叠类型,或两者兼而有之?
我们可以定义一个类,它是only 的子类,并且Functor
具有以相同方式定义的函数吗?traverse
sequenceA
谢谢。