Non-exhaustive patterns in function split
From
Ho Yeung Lee@21:1/5 to
All on Tue Jul 26 19:33:17 2016
let aa = [1,2,3,4,5]
let aatree = treeFromList aa
split 3 aatree
*Main> let aa = [1,2,3,4,5]
*Main> let aatree = treeFromList aa
*Main> split 3 aatree
(Node 1 Empty (Node 2 Empty *** Exception: a.hs:(13,1)-(18,30): Non-exhaustive patterns in function split
a.hs
import Data.List
data BinTree a = Empty
| Node a (BinTree a) (BinTree a)
deriving (Show)
treeFromList :: (Ord a) => [a] -> BinTree a
treeFromList [] = Empty
treeFromList (x:xs) = Node x (treeFromList (filter (<x) xs))
(treeFromList (filter (>x) xs))
split :: Ord a => a -> BinTree a -> (BinTree a, BinTree a)
split _ Empty = (Empty, Empty)
split s (Node x lst rst)
| s < x = let (nlt, nrt) = split s lst in
(nlt, Node x nrt rst)
| s > x = let (nlt, nrt) = split s rst in
(Node x lst nlt, nrt)
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)