* Les rationnels 1. type fraction == int * int;; let (ConstFraction : int -> int -> fraction) = function n -> function d -> (n,d);; let (Num : fraction -> int) = function (n,d) -> n;; let (Denom : fraction -> int) = function (n,d) -> d;; 2. let ProduitFrac q1 q2 = (Num q1 * Num q2 , Denom q1 * Denom q2);; 3. let SommeFrac q1 q2 = (Num q1 * Denom q2 + Num q2 * Denom q1 , Denom q1 * Denom q2);; 5. let rec PGCD a b = if(a=b) or (b=0)then a else if (a=0) then b else if (a float -> complexe) = function a -> function b -> (a,b);; let (Re : complexe -> float) = function (a,b) -> a;; let (Img : complexe -> float) = function (a,b) -> b;; 2. let Add_C c1 c2 = (Re c1 +. Re c2 , Img c1 +. Img c2);; 3. let Mult_C c1 c2 = ((Re c1 *. Re c2) -. (Img c1 *. Img c2) , (Img c1 *. Re c2) +. (Re c1 *. Img c2));; 4. let Norm c = sqrt((Re c *. Re c) +. (Img c *. Img c));; 5. let Arg c =