let sommeb2 a =let n = vect_length a in
fst ( iterer ( fun (mini, i)-> let (sf, minf, jf) = iterer ( fun (s, min,j)-> let t=s+a.(j) in if t<min then (t, t, j+1) else (t, min, j+1))
n-i-1
(0,mini,i)
in (minf, i+1))
n
(a.(0), 0));;
Toplevel input:
>......................................................iterer ( fun (s, min,j)-> let t=s+a.(j) in if t<min then (t, t, j+1) else (t, min, j+1))
>n....
This expression has type int * int * int -> int * int * int,
but is used with type int.
#
let triselec a = let n = vect_length a in
snd (iterer ( fun (i,a) -> let (minf, indf, jf)=
iterer ( fun (min, indmin, j)-> if a.(j)<min then (a.(i), i, j+1) else ( min, indmin, j+1))
(n-i)
(a.(i), i+1, 0) in
a.(indf)<-a.(i); a.(i)<-minf; (i+1,a))
(n-1)
(1,a));;