繁体   English   中英

如何在 OCaml 中打印特定索引列表列表?

[英]How to print specific index a list of lists in OCaml?

如何打印列表和列表列表的特定索引?

[["Anne";"Brazil";"42";"\n"];
 ["Bernard";"France";"34";"\n"];
 ["Charlie";"USA";"65";"\n"]]

示例:如果我想打印“巴西”,我该如何访问它的索引?

谢谢!

干杯!

你的问题不是很清楚。 以下是一些观察。

根据索引考虑 OCaml 列表并不是一个好方法。 OCaml 列表确实是列表——仅在一个方向上访问,访问任何一个元素都有线性时间。 它们实际上不是数组——对任何元素都有恒定的时间访问。 其他一些语言将这些结构视为相同,但事实并非如此。

您似乎在说的是您以“巴西”之类的已知名称开头,并且您希望使用该名称访问列表元素。 更一般地说,您希望访问具有某些属性的列表元素。

针对这个一般问题的一个标准 function 是List.find 你给它一个 boolean function 以获得所需的属性和一个列表。 如果没有这样的元素,它会返回元素或引发异常。

您可以按姓氏查找元素,如下所示:

let has_las_name n l =
    match l with
    | _ :: lname :: _ -> lname = n
    | _ -> false

let brazil_element = List.find (has_last_name "Brazil") mylist

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM