我在 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)?
uj5u.com熱心網友回復:
在 OCaml 中,整數數學是用
、-
、*
和完成的/
。浮點數學是用 .
, -.
,*.
和完成的/.
你要:
let rec sum lst =
match lst with
| [] -> 0.0
| h :: t -> h . sum t
盡管您可以只寫以下內容。0
浮點文字的尾隨不是必需的。這具有尾遞回的好處。
let sum = List.fold_left ( .) 0.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/487566.html
上一篇:一次添加多個資料以回傳串列