>From a2ef259c3cf41f96140cff238fb6539de1db263c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 6 Nov 2013 19:19:20 +0000 Subject: [PATCH] builder: Old OCaml didn't have List.iteri, so add a utility function. --- builder/builder.ml | 2 +- mllib/common_utils.ml | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/builder/builder.ml b/builder/builder.ml index a5a4dfe..21023fa 100644 --- a/builder/builder.ml +++ b/builder/builder.ml @@ -50,7 +50,7 @@ let main () = eprintf "command line:"; List.iter (eprintf " %s") (Array.to_list Sys.argv); prerr_newline (); - List.iteri ( + iteri ( fun i (source, fingerprint) -> eprintf "source[%d] = (%S, %S)\n" i source fingerprint ) sources diff --git a/mllib/common_utils.ml b/mllib/common_utils.ml index e7ed3fe..953638f 100644 --- a/mllib/common_utils.ml +++ b/mllib/common_utils.ml @@ -164,6 +164,13 @@ let rec filter_map f = function | Some y -> y :: filter_map f xs | None -> filter_map f xs +let iteri f xs = + let rec loop i = function + | [] -> () + | x :: xs -> f i x; loop (i+1) xs + in + loop 0 xs + (* Timestamped progress messages, used for ordinary messages when not * --quiet. *) -- 1.8.3.1