我正在解决一个问题,需要将完整的二叉树分割为匹配的二叉树和叶子树,例如:
splitFTree :: (FTree a b) -> (BTree a, LTree b)
其中
data FTree a b = Leaf b | No a (FTree a b) (FTree a b)
data BTree a = Empty | Node a (BTree a) (BTree a)
data LTree a = Tip a | Fork (LTree a) (LTree a)
我对此的解决方案是下一个代码:
splitFTree :: (FTree a b) -> (BTree a, LTree b)
splitFTree (Leaf a) = ( Node a Empty Empty , Tip a )
splitFTree (No a e d) = let (b1,l1) = splitFTree e
(b2,l2) = splitFTree d
in (Node a b1 b2 , Fork l1 l2)
使用GHCI进行编译时出现以下错误,我不知道我的错误在哪里:
solucaoficha9.hs:89:25:
parse error in let binding: missing required 'in'
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
我已经发现了答案,因为let
和in
语句必须由代码上的相同TAB列排成一行,SPACE衬里是不够的。