有人可以幫助或提供一些指導,說明如何在後續實現中理解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