Ocaml是列表列表中的元素

pri*_*ima 1 ocaml

我创建了一个列表列表,例如:

list1 = [[1; 2]; [3; 4]]
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个函数"is_element",如果intiger在列表中,它将返回true,否则返回false.

它应该如何工作:

is_element list1 4;;
- : bool = true
Run Code Online (Sandbox Code Playgroud)

我尝试了什么:

let rec is_element x = function
[[]] -> false
| [(a:int)::l] -> (a:int) == x || is_element x [l];;
Run Code Online (Sandbox Code Playgroud)

我收到警告,这个功能似乎不起作用.

小智 5

您可以使用List.mem检查元素是否是列表的一部分,并且可以使用 List.exists检查列表中的任何元素是否满足谓词.结合这两个,您可以检查列表列表是否包含您的元素.