ceci dit , amdettons qu'on est ceci :
partition ("fr",[("fr","be"); ("be","pb"); ("pb","all"); ("all","po"); ("po","rt"); ("rt","au"); ("au","su"); ("su","it"); ("it","fr"); ("fr","su")]);;
et caml renvoie :
1 2 3
| - : string list * string list =
(["be"; "pb"; "pb"; "all"; "all"; "po"; "po"; "rt"; "rt"; "au"; "au"; "su";
"su"; "it"; "fr"], ["fr"; "fr"; "fr"]) |
ds la 1ère liste, on ne devrait pas avoir "fr" :s
je rappelle juste le code :
1 2 3 4 5
| let rec partition (a,l) = match l with
[] -> ([a],[])
| (e1,e2)::r -> let (r1,r2) = partition (a,r) in if e1=a then (r1, (e1::r2)) else
if e2=a then (r1,(e2::r2))
else (e1::e2::r1, r2);; |
Partager