Tail recursion

This commit is contained in:
Anthony Scemama 2020-04-16 00:42:51 +02:00
parent 9fede1e06c
commit 21a3b36f79
1 changed files with 9 additions and 4 deletions

View File

@ -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