From aae15b024a38de4b22f8a9a5eda8637b35c7e88a Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Mon, 3 Nov 2014 18:12:13 +0100 Subject: [PATCH] Tail recursion in ocaml flatten_ezfio --- src/ezfio.ml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ezfio.ml b/src/ezfio.ml index 46c308a..252e4bb 100644 --- a/src/ezfio.ml +++ b/src/ezfio.ml @@ -308,10 +308,10 @@ let ezfio_get_element { rank=r ; dim=d ; data=data } coord = let flattened_ezfio { rank ; dim ; data } = let flatten_2 d = - let l = List.map (function + let l = List.rev_map (function | Ezfio_item i -> i | Ezfio_data i -> assert false - ) (Array.to_list d) + ) (List.rev (Array.to_list d)) in Array.concat l in @@ -319,10 +319,10 @@ let flattened_ezfio { rank ; dim ; data } = if (rank = 2) then flatten_2 d else - let l = List.map (function + let l = List.rev_map (function | Ezfio_data x -> flatten_n (rank-1) x | Ezfio_item _ -> assert false - ) (Array.to_list d) + ) (List.rev (Array.to_list d)) in Array.concat l in