Je suis en train de tableau diviser récursive avec n longueur sur 2 tableaux, jusqu'à ce que je reçois des tableaux n de 1 élément:tableau de division récursive sur des réseaux plus petits en OCaml
let rec split array =
if Array.length array = 1 then
array
else if Array.length array mod 2 = 0 then
let a = Array.make (Array.length array /2) 0 in
for i = 0 to Array.length a-1 do
a.(i) <- array.(i) done;
let b = Array.make (Array.length array/2) 0 in
for i = Array.length a to Array.length array -1 do
b.(i-Array.length a) <- array.(i) done;
split a;
split b;
else
let a = Array.make(Array.length array/2 +1) 0 in
for i = 0 to Array.length a-1 do
a.(i) <- array.(i) done;
let b = Array.make (Array.length array/2) 0 in
for i = Array.length a to Array.length array -1 do
b.(i-Array.length a) <- array.(i) done;
split a;
split b;
split [|3;2;4;1|];;
Cette fonction ne retourne que le dernier élément, mais Je veux revenir quelque chose comme [|3|];[|2|];[|4|];[|1|]