簡體   English   中英

如何在 OCaml 中返回浮點數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM