所以我正在尝试编写一个折叠自定义数据类型的函数,该函数基本上只是一个嵌套列表。任何帮助将不胜感激!这是我到目前为止所拥有的。
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'
答案 0 :(得分:4)
这是因为MyTree
不是构造函数。你的弃牌需要是这样的:
foldMT (Node x ts) = x : concatMap foldMT ts