diff options
Diffstat (limited to 'lib/js_lib/array.ml')
-rwxr-xr-x | lib/js_lib/array.ml | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/js_lib/array.ml b/lib/js_lib/array.ml new file mode 100755 index 0000000..e55f1e9 --- /dev/null +++ b/lib/js_lib/array.ml @@ -0,0 +1,14 @@ +open Js_of_ocaml + +(** Compare two arrays *) +let compare + : f:('a -> 'a -> bool Js.t) -> 'a Js.js_array Js.t -> 'a Js.js_array Js.t -> bool Js.t + = fun ~f arr1 arr2 -> + if arr1##.length <> arr2##.length then + Js._false + else + arr1##every + (Js.wrap_callback @@ fun elem i _ -> + Js.Optdef.case (Js.array_get arr2 i) + (fun () -> Js._false) + (fun elem2 -> f elem elem2)) |