From 21a3b36f797120d8eb23d4812bffdaa4c61fa318 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Thu, 16 Apr 2020 00:42:51 +0200 Subject: [PATCH] Tail recursion --- ocaml/Block.ml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ocaml/Block.ml b/ocaml/Block.ml index 1d969aa..21cbf62 100644 --- a/ocaml/Block.ml +++ b/ocaml/Block.ml @@ -122,10 +122,15 @@ let update_raw_data ?(locked=true) () = let result = let rec aux ic accu = - try - aux ic ( (input_line ic)::accu ) - with - | End_of_file -> List.rev accu + let l = + try + Some (input_line ic) + with + | End_of_file -> None + in + match l with + | None -> List.rev accu + | Some l -> (aux [@tailcall]) ic (l::accu) in List.concat_map (fun filename -> let ic = open_in filename in