Как преобразовать float в float. Вот функция:Преобразование float в float опция
let variance (list_ : float list) : float option =
if List.length list_ < 2 then None
else begin
let average tmp_list = List.fold_left(+.) 0. tmp_list /. float(List.length tmp_list) in
let square value = value *. value in
let rec sum tmp_list =
match tmp_list with
| [] -> 0.0
| head::tail -> square (head -. average tmp_list) +. sum tail
in Some (sum list_ /. float(List.length list_))
end
мне нужно sum list_ /. float(List.length list_)
вернуть float option
вместо float
, и я не знаю, как это сделать. Я думал, что если я вернусь с плавающей точкой в функции опции поплавка он будет автоматически возвращать вариант с плавающей точкой, но я получаю следующее сообщение об ошибке:
Error: This expression has type float but an expression was expected of type float option
Я попробовал оборачивать его вокруг Some
и не удалось. Кажется, что не нашел ничего в Интернете.
EDIT: Добавлен полный код