Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 22nd, 2012  |  syntax: OCaml  |  size: 1.11 KB  |  hits: 26  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. let rec verifPresence h2 res b = match res with(* renvoit true si h2 est trouvé dans res. b est à init à false *)
  2.     []-> b
  3.     |h::t-> if (h=h2)
  4.             then true
  5.             else verifPresence h2 t b
  6. ;;
  7.    
  8. let rec extraction h2 list_group res = match list_group with (* renvoit la plus grande list de list_group comprenant h2.res est à init à [] *)
  9.     []->res
  10.     |h::t-> if ( (verifPresence h2 h false) && ((List.length h)>(List.length res)) )
  11.                 then extraction h2 t h
  12.                 else extraction h2 t res
  13. ;;
  14.  
  15. let parcoursFiltrage =fun tk list_group ->    
  16. let rec aux = fun tk list_group res -> match tk with (*res à init à [] + possibilité de rajouter un if pour éviter les cases =0 *)
  17.     []->res
  18.     |h::t->begin
  19.             let rec aux2 = fun res2
  20.                 -> match h with
  21.                 []-> res@(parcoursFiltrage t list_group res)
  22.                 |h2::t2->if ( verifPresence h2 res false)
  23.                             then aux res2
  24.                             else aux (res2@(extraction h2 list_group []))
  25.             in aux2 []
  26.             end
  27.         in aux tk list_group []
  28. ;;