data Tree a = Empty_Tree
| Node {element :: a, left_tree, right_tree :: Tree a}
deriving (Eq)
biep :: (Ord a) => Tree a -> Bool
biep tree = case tree of
Empty_Tree -> True
Node e left right ->
(left == Empty_Tree || (e < element left && biep left )) &&
(right == Empty_Tree || (e > element right && biep right))
以上代码可以正确编译。
如果biep
树返回True,你能对树有什么看法?
答案 0 :(得分:1)
biep
将返回True
。
如果树是空的,这个说法是空的 - 序列是空的,因此严格减少。但是,如果它不是空的,那么我们需要检查一些事情
希望有所帮助!
答案 1 :(得分:0)
希望我能够正确地重写它:
biep :: (Ord a) => Tree a -> Bool
biep Empty_Tree = True
biep (Node e left right) = (ibiep left e (<) )&& (ibiep right e (>))
where ibiep Empty_Tree _ _ = True
ibiep n@(Node en _ _) val op = ( e `op` en ) && (biep n)
使用数据构造函数时必须包括括号。