
Untitled
By: a guest on
Apr 22nd, 2012 | syntax:
OCaml | size: 1.11 KB | hits: 26 | expires: Never
let rec verifPresence h2 res b = match res with(* renvoit true si h2 est trouvé dans res. b est à init à false *)
[]-> b
|h::t-> if (h=h2)
then true
else verifPresence h2 t b
;;
let rec extraction h2 list_group res = match list_group with (* renvoit la plus grande list de list_group comprenant h2.res est à init à [] *)
[]->res
|h::t-> if ( (verifPresence h2 h false) && ((List.length h)>(List.length res)) )
then extraction h2 t h
else extraction h2 t res
;;
let parcoursFiltrage =fun tk list_group ->
let rec aux = fun tk list_group res -> match tk with (*res à init à [] + possibilité de rajouter un if pour éviter les cases =0 *)
[]->res
|h::t->begin
let rec aux2 = fun res2
-> match h with
[]-> res@(parcoursFiltrage t list_group res)
|h2::t2->if ( verifPresence h2 res false)
then aux res2
else aux (res2@(extraction h2 list_group []))
in aux2 []
end
in aux tk list_group []
;;