[英]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
如何重寫此函數,以便它能夠對浮點列表求和並在列表為空時返回零作為浮點 (0.0)?
在 OCaml 中,整數數學是用+
、 -
、 *
和/
完成的。 浮點數學是用+.
, -.
, *.
, 和/.
你要:
let rec sum lst =
match lst with
| [] -> 0.0
| h :: t -> h +. sum t
盡管您可以只寫以下內容。 浮點文字的尾隨0
不是必需的。 這具有尾遞歸的好處。
let sum = List.fold_left (+.) 0.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.