Scherzetto, non ho prestato abbastanza attenzione perché facevo altro.codice:let to_float_list = List.map float;; let rec conta (l:float list) :float = match l with [] -> 0. |x::xs -> 1. +. conta xs;; let rec somma (l:float list) :float = match l with [] -> 0. |x::xs -> x +. somma xs;; let rec prodotto (l:float list) :float = match l with [] ->1. |x::xs -> x*. prodotto xs ;; let rec reciproci (l:float list) : float = match l with [] -> 0. |x::xs -> 1./.x +. reciproci xs;; let media_aritmetica l = somma l /. conta l;; let media_geometrica l= (prodotto l)**( 1./.(conta l));; let media_armonica l= ( conta l)**2. /.(reciproci l);; let rec means (l:int list) : (float * float * float) = let l' = to_float_list l in ( media_aritmetica l' , media_geometrica l' , media_armonica l');;


Rispondi quotando
