我有这样的数据类型定义: data RoseTree a = Leaf a | Branch [RoseTree a] deriving (Eq, Show) 我需要编写fmap函数器 fmap ::Functor f => (a -> b) -> f a -> f b 我从以下几点开始 fmap f (Leaf a) = Leaf (f a)fmap f (Branch (x:xs) ) =
在Haskell中,有一个名为的类型类。该类的定义如下 extended :: (w a -> b) -> w a -> w bextended f . extended g = extended (f . extended g)
我可以看到它与Functor的相似之处。特别是,Functor的属性fmap
有没有办法欺骗haskell (raw haskell?源码插件?有什么问题吗?)来获得一个类型类是如何派生的证明树?我想说的是,使用下面的例子: -- ------ ---------- fmap f s = case s of (Inl s) -> Inl (fmap f s); (Inr s) -> I