summaryrefslogtreecommitdiffstats
path: root/stdlib/array.ml
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>1997-07-26 12:20:44 +0000
committerXavier Leroy <xavier.leroy@inria.fr>1997-07-26 12:20:44 +0000
commit8169d9c1b58301d2e2ec086998a17e843f0eadc2 (patch)
tree257d22f6a8516159eb3387f00ff63b1390756a60 /stdlib/array.ml
parent0195de0b66ced15d14faea759458db47506b62d0 (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.ml7
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
[] -> [||]