如何解决如何在 OCaml 中打印特定索引列表?
如何打印列表和列表列表的特定索引?
[["Anne";"Brazil";"42";"\n"];
["Bernard";"France";"34";"\n"];
["Charlie";"USA";"65";"\n"]]
示例: 如果我想打印“Brazil”,我如何访问它的索引?
谢谢!
干杯!
解决方法
你的问题不是很清楚。以下是一些观察结果。
从索引的角度考虑 OCaml 列表并不是一个好方法。 OCaml 列表实际上是列表——仅在一个方向上访问,访问任何一个元素的线性时间。它们实际上不是数组——对任何元素都有恒定的时间访问。其他一些语言将这些结构视为相同,但实际上并非如此。
您似乎在说,您以一个已知名称开头,例如“Brazil”,并且您想访问具有该名称的列表元素。更一般地说,您希望访问具有某些属性的列表元素。
这个一般问题的一个标准函数是List.find
。您为所需的属性和列表提供一个布尔函数。如果没有这样的元素,它将返回该元素或引发异常。
您可以按姓氏查找元素,如下所示:
let has_las_name n l =
match l with
| _ :: lname :: _ -> lname = n
| _ -> false
let brazil_element = List.find (has_last_name "Brazil") mylist
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。