(* Somme des éléments d'un tableau. *)

(* avec une boucle for *)

let sum_for a =
  let s = ref 0 in
  for i = 0 to Array.length a - 1 do
    s := !s + a.(i)
  done;
  !s

(* avec une fonction récursive *)

let sum_rec a =
  let rec loop s i =
    if i < Array.length a then loop (s + a.(i)) (i + 1) else s
  in
  loop 0 0

(* quelques tests *)

let () =
  let test a s = assert (sum_for a = s); assert (sum_rec a = s) in
  test [||] 0;
  test [|42|] 42;
  test [|-1;1|] 0;
  test (Array.init 10 (fun i -> i)) 45



This document was generated using caml2html