これが私のコードです:
let avg l =
List.fold_left ( +. ) 0. l /. float (List.length l);;
let variability l =
let xbar = avg l in
let odp = (List.map (fun i -> ((float) i -. xbar) ** 2.0) l) in
let sum = List.fold_left ( +. ) 0. odp in
sum /. (float) length l;;
これをトップレベルに入力すると、次のようになります。
val avg : float list -> float = <fun>
# Characters 107-108:
let odp = (List.map (fun i -> ((float) i -. xbar) ** 2.0) l) in
^
Error: This expression has type float list but is here used with type
int list
私は長い間これを使用しようとしましたが、なぜこれがエラーを生成しているのかわかりません。l
それはintリストだと思っていますか?
解決策:(以下から。ありがとう!)
let avg l =
List.fold_left ( +. ) 0. l /. float (List.length l);;
let variability l =
let xbar = avg l in
let odp = (List.map (fun i -> (i -. xbar) ** 2.0) l) in
let sum = List.fold_left ( +. ) 0. odp in
sum /. (float) (List.length l);;