我定义了一个多态数据类型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)并且我不知道出了什么问题。有谁知道如何通过这个?