Completing basic operations in basic.ml for primitives float, And, Or, Xor, fmod...
[Faustine.git] / interpretor / aux.ml
index 9463cae..a33e722 100644 (file)
@@ -5,11 +5,6 @@
        Created: 12/08/2013     Modified: 13/08/2013
 *)
 
        Created: 12/08/2013     Modified: 13/08/2013
 *)
 
-
-let array_map = fun f -> fun a ->
-  let n = Array.length a in
-  Array.init n (fun i -> f a.(i));;
-
 let array_map2 = fun f -> fun a -> fun b ->
   let n1 = Array.length a in
   let n2 = Array.length b in
 let array_map2 = fun f -> fun a -> fun b ->
   let n1 = Array.length a in
   let n2 = Array.length b in
@@ -22,3 +17,13 @@ let array_map3 = fun f -> fun a -> fun b -> fun c ->
   let n3 = Array.length c in
   if n1 = n2 && n1 = n3 then Array.init n1 (fun i -> f a.(i) b.(i) c.(i))
   else raise (Invalid_argument "Array.map3 size not matched.");;
   let n3 = Array.length c in
   if n1 = n2 && n1 = n3 then Array.init n1 (fun i -> f a.(i) b.(i) c.(i))
   else raise (Invalid_argument "Array.map3 size not matched.");;
+
+let decorate = fun s -> "    Faustine -> " ^ s;;
+
+let xor : bool -> bool -> bool =
+  fun a -> fun b -> (a || b) && (not (a && b));;
+
+let rint : float -> float = 
+  fun f -> 
+    if (f -. (floor f)) >= 0.5 then ceil f
+    else floor f;;