diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 1997-07-26 12:20:44 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 1997-07-26 12:20:44 +0000 |
commit | 8169d9c1b58301d2e2ec086998a17e843f0eadc2 (patch) | |
tree | 257d22f6a8516159eb3387f00ff63b1390756a60 /stdlib/array.ml | |
parent | 0195de0b66ced15d14faea759458db47506b62d0 (diff) |
Array.to_list tailrec
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1660 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'stdlib/array.ml')
-rw-r--r-- | stdlib/array.ml | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/stdlib/array.ml b/stdlib/array.ml index d398e68f7..901004de9 100644 --- a/stdlib/array.ml +++ b/stdlib/array.ml @@ -109,10 +109,9 @@ let map f a = end let to_list a = - let len = length a in - let rec tolist i = - if i >= len then [] else unsafe_get a i :: tolist(i+1) in - tolist 0 + let rec tolist i res = + if i < 0 then res else tolist (i - 1) (unsafe_get a i :: res) in + tolist (length a - 1) [] let of_list = function [] -> [||] |