如何在 OCaml 中 return 浮动?
How to return a float in OCaml?
我已经在 OCaml 中编写了这个简单的函数来计算列表的总和:
let rec sum lst =
match lst with
| [] -> 0.0
| h :: t -> h + sum t
但是我在调用它时收到错误消息:
Error: This expression has type float
but an expression was expected of type int
如何重写此函数,使其能够对浮点数列表求和,如果列表为空,return 零作为浮点数 (0.0)?
在 OCaml 中,整数数学是用 +
、-
、*
和 /
完成的。使用 +.
、-.
、*.
和 /.
完成浮点运算
你想要:
let rec sum lst =
match lst with
| [] -> 0.0
| h :: t -> h +. sum t
尽管您可以只写下面的内容。浮点文字上的尾随 0
不是必需的。这有 tail-recursive.
的好处
let sum = List.fold_left (+.) 0.
我已经在 OCaml 中编写了这个简单的函数来计算列表的总和:
let rec sum lst =
match lst with
| [] -> 0.0
| h :: t -> h + sum t
但是我在调用它时收到错误消息:
Error: This expression has type float
but an expression was expected of type int
如何重写此函数,使其能够对浮点数列表求和,如果列表为空,return 零作为浮点数 (0.0)?
在 OCaml 中,整数数学是用 +
、-
、*
和 /
完成的。使用 +.
、-.
、*.
和 /.
你想要:
let rec sum lst =
match lst with
| [] -> 0.0
| h :: t -> h +. sum t
尽管您可以只写下面的内容。浮点文字上的尾随 0
不是必需的。这有 tail-recursive.
let sum = List.fold_left (+.) 0.