04a7255a20b30207c7eae8ac6dd737aff60c4568
[tiger.ml.git] / exercises / ch01 / tree.ml
1 module Array = ArrayLabels
2
3 module Tree_vanilla = Tree_unbalanced_vanilla
4 module Tree_redblack = Tree_balanced_red_black
5
6 let () =
7 let unbalanced = Tree_vanilla.empty in
8 let unbalanced = Tree_vanilla.set unbalanced ~k:"k1" ~v:"v1" in
9 let unbalanced = Tree_vanilla.set unbalanced ~k:"k2" ~v:"v2" in
10 assert (Tree_vanilla.member unbalanced ~k:"k1");
11 assert (Tree_vanilla.member unbalanced ~k:"k2");
12 assert (Some "v1" = Tree_vanilla.get unbalanced ~k:"k1");
13 assert (Some "v2" = Tree_vanilla.get unbalanced ~k:"k2");
14
15 let balanced = Tree_redblack.empty in
16 let balanced = Tree_redblack.set balanced ~k:"k1" ~v:"v1" in
17 let balanced = Tree_redblack.set balanced ~k:"k2" ~v:"v2" in
18 assert (Tree_redblack.member balanced ~k:"k1");
19 assert (Tree_redblack.member balanced ~k:"k2");
20 assert (Some "v1" = Tree_redblack.get balanced ~k:"k1");
21 assert (Some "v2" = Tree_redblack.get balanced ~k:"k2");
22
23 (*let unbalanced =*)
24 (*Array.fold_left (Sys.argv)*)
25 (*~init:Tree_vanilla.empty*)
26 (*~f:(fun t k -> Tree_vanilla.set t ~k ~v:())*)
27 (*in*)
28 (*print_endline (Tree_vanilla.to_dot unbalanced ~k_to_string:(fun x -> x));*)
29
30 let balanced =
31 Array.fold_left (Sys.argv)
32 ~init:Tree_redblack.empty
33 ~f:(fun t k -> Tree_redblack.set t ~k ~v:())
34 in
35 print_endline (Tree_redblack.to_dot balanced ~k_to_string:(fun x -> x))
This page took 0.060024 seconds and 3 git commands to generate.