(* Operation ensemblistes *) let rec union l1 l2 = match (l1,l2) with ([],l2) -> l2 |(t1::r1,l2) -> if(Membre t1 l2) then union r1 l2 else t1::union r1 l2;; let rec inter l1 l2 = match (l1,l2) with ([],_) -> [] |(t1::r1,l2) -> if(Membre t1 l2) then t1::(inter r1 l2) else inter r1 l2;; let rec diff l1 l2 = match (l1,l2) with ([],_) -> [] |(t1::r1,l2) -> if(Membre t1 l2) then diff r1 l2 else t1::(diff r1 l2);; let diff_sym l1 l2 = diff (union l1 l2) (inter l1 l2);;