私は木の高さを返す「高さ」関数を持っています。しかし、私はそれを使用しようとすると、私はこの例外を取得します。どうすれば修正できますか?また、指定されたツリーが均衡しているかどうかをチェックする関数 "isBalancedTree"もあります。ハスケルで二分木の高さを見つける
data Tree = Node Tree Int Tree | Leaf Int deriving Show
height :: Tree -> Integer
height (Node left x right) = 1 + max (height left) (height right)
isBalancedTree :: Tree -> Bool
isBalancedTree (Node left x right) =
let diff = abs (height left - height right) in
diff <= 1 && isBalancedTree left && isBalancedTree right
*メイン>高さ((ノード(リーフ3)4(リーフ2))5(ノード(リーフ4)7(リーフ6)))
***例外:非height
の機能の高さが網羅パターン
何 'isBalanced'場合、または' 'height' Leaf'を取得しますか? –
'-Wall'で警告を有効にしてください!コンパイラはパターンマッチングで欠けているケースを指摘します。強く推奨する。 – chi