Haskell将给定函数映射到GTree叶子上的元素

时间:2016-12-04 10:19:01

标签: haskell

我有一个数据结构:

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

有人可以帮我完成吗?或者至少解释一下如何实现..

0 个答案:

没有答案