gpt4 book ai didi

list - OCaml:List.fold_left 是如何工作的?

转载 作者:行者123 更新时间:2023-12-05 00:56:59 26 4
gpt4 key购买 nike

我试图找到浮点数列表的平均值。

let avg l =
List.fold_left ( +. ) 0 l /. List.length l;;

List.fold_left 如何工作? (将第一个参数应用于列表(第三个参数)...但是第二个参数是什么?)

Toplevel 返回此错误:
Characters 43-44:
List.fold_left ( +. ) 0 l /. List.length l;;
^
Error: This expression has type int but is here used with type float

在 OCaml 中迭代列表的首选方法是什么?

最佳答案

第二个参数是累加器的初始值。对于左折叠,您可以直观地将其放置在列表的左侧。所以对于 [1;2;3;4;5] 上的左折叠初始值为 0,计算结果为:

((((0 + 1) + 2) + 3) + 4) + 5

所以在这种情况下,最里面的括号计算为 (0 +. 1.0) ,这在 OCaml 中不起作用,因为 0 是 int 并且语言不会自动将其转换为浮点数。

关于list - OCaml:List.fold_left 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1384103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com