(** Module: Aux Description: all auxiliary functions @author WANG Haisheng 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 if n1 = n2 then Array.init n1 (fun i -> f a.(i) b.(i)) else raise (Invalid_argument "Array.map2 size not matched.");; let array_map3 = fun f -> fun a -> fun b -> fun c -> let n1 = Array.length a in let n2 = Array.length b in 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;;