我定义了一个多态数据类型Tree a
,如下所示:
data Tree a = Leaf | Node a (Tree a) (Tree a)
我想定义一个函数mapT
,它接受一个函数并将其应用于类型a
树中的每个类型数据项Tree a
。这个函数的基本目的是对树进行操作,就像map
函数在列表上操作一样,所以我根据这个想法编写了一个函数:
mapT :: (a -> b) -> Tree a -> Tree b
mapT f Leaf = Leaf
mapT f ((Tree a) left right) = (Tree a) (mapT f left) (mapT f right)
但是,当我运行它时,我得到一个Parse error in pattern: (Tree a)
并且我不知道出了什么问题。有谁知道如何通过这个?