RosettaCodeData/Task/Loop-over-multiple-arrays-simultaneously/OCaml/loop-over-multiple-arrays-simultaneously-2.ml

12 lines
344 B
OCaml
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
let n_arrays_iter ~f = function
| [] -> ()
| x::xs as al ->
let len = Array.length x in
let b = List.for_all (fun a -> Array.length a = len) xs in
if not b then invalid_arg "n_arrays_iter: arrays of different
length";
for i = 0 to pred len do
let ai = List.map (fun a -> a.(i)) al in
f ai
done