折叠嵌套列表有一点问题

时间:2011-03-07 01:58:02

标签: haskell

所以我正在尝试编写一个折叠自定义数据类型的函数,该函数基本上只是一个嵌套列表。任何帮助将不胜感激!这是我到目前为止所拥有的。

data MyTree a = Node a [MyTree a] deriving (Show, Read, Eq)  

foldMT :: MyTree a -> [a]
foldMT (Node x) = [x]
foldMT (MyTree x) = concatMap foldMT x

我收到以下错误。它指的是foldMT的最后一个陈述。

  

不在范围内:数据构造函数`MyTree'

1 个答案:

答案 0 :(得分:4)

这是因为MyTree不是构造函数。你的弃牌需要是这样的:

foldMT (Node x ts) = x : concatMap foldMT ts