on cbc8a13 help sign in
18 lines 470 B history raw
1module btree
3data BTree a = Leaf
4 | Node (BTree a) a (BTree a)
6insert : Ord a => a -> BTree a -> BTree a
7insert x Leaf = Node Leaf x Leaf
8insert x (Node l v r) = if (x < v) then (Node (insert x l) v r)
9 else (Node l v (insert x r))
11toList : BTree a -> List a
12toList Leaf = []
13toList (Node l v r) = toList l ++ (v :: toList r)
15toTree : Ord a => List a -> BTree a
16toTree [] = Leaf
17toTree (x :: xs) = insert x (toTree xs)