有人可以帮助或提供一些指导,说明如何在后续实现中理解fmap函数。haskell了解fmap
data Rose a = a :> [Rose a] deriving (Eq, Show)
instance Functor Rose where
fmap f (x :> xs) = (f x) :> fmap (fmap f) xs
tree :: Rose Int
tree = 1 :> [2:>[]]
我不明白(FMAP F)的一部分,它为什么又走在递归,但是只需要1个参数。这怎么可能,因为它需要2
第二部分是,我不为什么已了解这不是作品:
fmap f (x :> xs) = (f x) :> fmap f xs
我希望有人可以给我如何了解一些这方面的方向。
谢谢你的解释!我终于忍不住了 – Danique