Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ocaml 在列表中搜索关键字_Ocaml - Fatal编程技术网

Ocaml 在列表中搜索关键字

Ocaml 在列表中搜索关键字,ocaml,Ocaml,有人能给我举一个使用list.find搜索列表中项目的工作示例吗。。如果找到,则打印“找到” 令人惊讶的是,我在文档中没有发现它的使用示例,在google上也没有,只有1个,这让我感到困惑,并给出了错误。首先我需要一个基本的工作示例。很多反对票?难道不应该在评论中说明原因吗 无论如何,这里有一个解决方案 由于List.find会引发未找到如果未找到元素,则应在try中使用它。。。使用块: try let elem = List.find (fun i -> i = 1) [1;2;3

有人能给我举一个使用
list.find
搜索列表中项目的工作示例吗。。如果找到,则打印“找到”


令人惊讶的是,我在文档中没有发现它的使用示例,在google上也没有,只有1个,这让我感到困惑,并给出了错误。首先我需要一个基本的工作示例。

很多反对票?难道不应该在评论中说明原因吗

无论如何,这里有一个解决方案

由于List.find会引发
未找到
如果未找到元素,则应在
try中使用它。。。使用
块:

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_关键字”)
等等。(您可能还想在OCaml中搜索关于相等性的信息。)

如果不需要保留找到的元素,可以使用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")

谢谢你的回复:)你也知道如何比较int引用吗?我正在尝试将一个int引用与1进行比较,并继续获得预期的int引用:/Yes,您必须用!,像
让i=ref2进入!i=4
我想人们会有兴趣知道你看的是哪一个。