任何人都可以向我展示一个使用List.find
在列表中搜索项目的工作示例..如果找到则打印“找到”。
令人惊讶的是,我没有在文档中找到它的用法示例,在谷歌上没有找到它,只有1个在SO上让我困惑并给出了错误。我只需要一个基本的工作示例来开始。
答案 0 :(得分:1)
如果您不需要保存找到的元素,可以使用List.exists:
if(List.exists (fun i -> i = 1) [1;2;3])
then print_endline ("Found")
else print_endline ("Not found")
或List.mem:
if(List.mem 1 [1;2;3])
then print_endline ("Found")
else print_endline ("Not found")
答案 1 :(得分:0)
很多downvotes?猥亵者不应该在评论中指明原因吗?
无论如何,这是一个解决方案。
由于如果找不到该元素,List.find会引发Not_found
,您应该在try ... with
块中使用它:
try
let elem = List.find (fun i -> i = 1) [1;2;3] in
print_endline ("Found integer " ^ (string_of_int elem))
with
Not_found ->
print_endline "Found no element"
(fun i -> i = 1)
部分是一个函数,它接受一个元素(从列表中)并将其与您尝试查找的元素应该保持的任何条件进行比较。它也可能像(fun i -> i > 2)
等。当然,如果列表是字符串列表,您将使用(fun s -> s = "my_keyword")
左右。 (您也可能想要了解OCaml中的相等性。)