从浮点数列表中获取第n个元素

时间:2019-04-15 16:02:17

标签: ocaml ml

如果我有一个浮动列表:

let float_list = [1.5,2.5,3.5]

我正在从这个列表中提取一个数字,类似于:

List.nth float_list 2

但是返回的类型是float * float而不是3.5。 List.nth似乎只从整数列表返回整数,而我似乎无法在https://caml.inria.fr/pub/docs/manual-ocaml/libref/List.html中找到一个函数来返回除整数列表以外的任何列表的第n个元素。

任何人都可以提供帮助吗?

2 个答案:

答案 0 :(得分:3)

您的float_list不是浮点数列表,而是float * float * float元组的列表,并且仅包含一个这样的元组。因此,除了没有所需的类型之外,List.nth float_list 2实际上会在运行时导致异常,因为2对该列表而言不是有效的索引。

您需要[1.5; 2.5; 3.5],它实际上是浮点数列表。使用该列表,List.nth会完全按照您的要求工作。

答案 1 :(得分:1)

OCaml中的列表文字使用;来分隔项目。 ,用于分隔元组中的项。因此float_list的类型实际上是(float * float * float) list,它只包含一个元素。