diff options
Diffstat (limited to 'Examples/ocaml/std_vector/runme.ml')
| -rw-r--r-- | Examples/ocaml/std_vector/runme.ml | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Examples/ocaml/std_vector/runme.ml b/Examples/ocaml/std_vector/runme.ml new file mode 100644 index 0000000..feb70dd --- /dev/null +++ b/Examples/ocaml/std_vector/runme.ml @@ -0,0 +1,35 @@ +(* This example was mostly lifted from the guile example directory *) + +open Swig +open Example + +let with_vector v f = + for i = 0 to ((v -> size()) as int) - 1 do + f v i + done + +let print_DoubleVector v = + begin + with_vector v + (fun v i -> + print_float ((v '[i to int]) as float) ; + print_string " ") ; + print_endline + end + +(* Call average with a Ocaml array... *) + +let v = new_DoubleVector '() +let rec fill_dv v x = + if x < 0.0001 then v else + begin + v -> push_back ((x to float)) ; + fill_dv v (x *. x) + end +let _ = fill_dv v 0.999 +let _ = print_DoubleVector v ; print_endline "" +let u = new_IntVector '() +let _ = for i = 1 to 4 do + u -> push_back ((i to int)) +done +let _ = (print_float ((_average u) as float) ; print_newline ()) |
