let rec liste_privee_dernier_elt l = match l with [] -> failwith "liste vide" |[a] -> [] |t::r -> t:: liste_privee_dernier_elt r;; let tete_liste l = match l with [] -> failwith "liste vide" |[a] -> a |t::r -> t;; let reste_liste l = match l with [] -> failwith "liste vide" |[a] -> [] |t::r -> r;; let est_singleton l = match l with [a] -> true |_ -> false;; let rec liste_privee_dernier_elt_sf l = if l=[] then failwith "erreur: liste vide" else if (est_singleton l) then [] else tete_liste(l)::(liste_privee_dernier_elt_sf (reste_liste l));; let rec suite u0 a b n = if n=0 then u0 else a *. (suite u0 a b (n-1)) +. b;; let rec serie u0 a b n = if n=0 then u0 else (suite u0 a b n) +. serie u0 a b (n-1);; let rec membre x l = match l with [] -> false |t::r -> if x=t then true else membre x r;; let rec liste_elt_diff l = match l with [] -> true |t::r -> if membre t r then false else liste_elt_diff r;;