summaryrefslogtreecommitdiff
path: root/Examples/ocaml/std_vector/runme.ml
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2009-08-18 20:56:02 +0000
committerLorry <lorry@roadtrain.codethink.co.uk>2012-09-25 16:59:08 +0000
commit9f8a09ed743cedd9547bf0661d518647966ab114 (patch)
tree9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/ocaml/std_vector/runme.ml
downloadswig-tarball-master.tar.gz
Imported from /srv/lorry/lorry-area/swig-tarball/swig-1.3.40.tar.gz.HEADswig-1.3.40master
Diffstat (limited to 'Examples/ocaml/std_vector/runme.ml')
-rw-r--r--Examples/ocaml/std_vector/runme.ml35
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 ())