ok ho capito.. ultima cosa. io ho questo esempio da svolgere, data una lista di interi, calcolare le tre medie con risultato float..
tutto è corretto, ma mi da errore la lista che ti ho messo in grassetto, in quanto dice che il tipo non è corrispondente, previsto float list ma specificato int list.. cosa devo fare??
let to_float_list = List.map float;;


let rec conta (l:float list) :float = match to_float_list l with
[] -> 0.
|x::xs -> 1. + conta xs;;
let rec somma (l:float list) :float = match to_float_list l with
[] -> 0.
|x::xs -> x + somma xs;;
let rec prodotto (l:float list) :float = match to_float_list l with
[] ->1.
|x::xs -> x* prodotto xs ;;
let rec reciproci (l:float list) : float = match to_float_list 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) = ( media_aritmetica l , media_geometrica l , media_armonica l );;