我有一个数据结构:
data GTree a = Leaf a | Gnode [GTree a]
以及针对不同数据结构的此map函数的示例:
data Tree a = Nil | Node a (Tree a) (Tree a) deriving (Eq,Ord,Show,Read)
mapTree :: (a-> b) -> Tree a -> Tree b
mapTree Nil = Nil
mapTree f (Node x t1 t2) = Node (f x) (mapTree f t1) (mapTree f t2)
我需要为我的GTree数据结构编写这个函数,但我无法实现它。现在我有这样的功能:
mapTree :: (a -> b) -> GTree a -> GTree b
mapTree f (Gnode [a]) = Gnode [mapTree f a]
mapTree f (Leaf a) = Leaf f
有人可以帮我完成吗?或者至少解释一下如何实现..