在Haskell中使用折叠对二叉树进行有序遍历

时间:2017-05-09 19:39:24

标签: haskell

我试图使用折叠编程在Haskell中对二叉树进行有序遍历 - 我已将其定义为:

foldB :: (x -> u -> u -> u) -> u -> BTree x -> u
foldB f a Nil = a
foldB f a (BNode x l r) = f x (foldB f a l) (foldB f a r)

我已经定义了二叉树的有序遍历:

inorder :: Ord a => BTree a -> [a]
inorder Nil = []
inorder (BNode a x y) = inorder x ++ [a] ++ inorder y

但我似乎无法让他们两个人一起工作:

inorderFold :: Ord a => BTree a -> [a]
inorderFold = foldB inorder []

0 个答案:

没有答案