Эта функция должна иметь возможность поиска диапазона данного BST.Так что lookupRange low high t должен вернуть true, если low <= x <= high </strong>.
Я хотел доказать свой код на этом примере:
lookupRange low high (Node (Node (Node Leaf 1 Leaf)
2
(Node Leaf 3 Leaf))
5
(Node (Node Leaf 6 Leaf)
7
(Node Leaf 8 Leaf)))
data Tree a = Leaf | Node (Tree a) a (Tree a)
deriving Show
lookupRange :: Ord a => a -> a -> Tree a -> Bool
lookupRange low high Leaf = False
lookupRange low high (Node l x r) | low <= x && x <= high = True
| x < low = lookupRange low high r
| otherwise = lookupRange low high l
В моем примере я получаю следующее сообщение об ошибке:
<interactive>:11:13: error:
* Variable not in scope: low :: Integer
* Perhaps you meant `log' (imported from Prelude)
<interactive>:11:17: error: Variable not in scope: high :: Integer