Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (* Binary tree datatype. *)
  2. datatype 'a btree = Leaf | Node of 'a btree * 'a * 'a btree
  3.  
  4. (* A reduction function. *)
  5. (* btree_reduce : ('b * 'a * 'b -> 'b) -> 'b -> 'a tree -> 'b) *)
  6. fun btree_reduce f b bt =
  7.   case bt of
  8.      Leaf => b
  9.    | Node (l, x, r) => f (btree_reduce f b l, x, btree_reduce f b r)
  10.  
  11.  
  12. (* DEFINE btree_size HERE *)
  13. (* btree_size : 'a btree -> int *)
  14. fun btree_size bt =
  15.    let
  16.       fun f l a r = 1 + l + r
  17.    in
  18.       btree_reduce(f 0 bt)
  19.    end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement