如果我有一个浮动列表:
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个元素。
任何人都可以提供帮助吗?
答案 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
,它只包含一个元素。