Ocaml是列表列表中的元素

Ocaml是列表列表中的元素,ocaml,Ocaml,我已经创建了一个列表,例如: list1 = [[1; 2]; [3; 4]] 我试图创建一个函数“is_元素”,如果intiger在列表中,它将返回true,否则返回false 它应该如何工作: is_element list1 4;; - : bool = true 我尝试的是: let rec is_element x = function [[]] -> false | [(a:int)::l] -> (a:int) == x || is_element x [l];;

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

list1 = [[1; 2]; [3; 4]]
我试图创建一个函数“is_元素”,如果intiger在列表中,它将返回true,否则返回false

它应该如何工作:

is_element list1 4;;
- : bool = true
我尝试的是:

let rec is_element x = function
[[]] -> false
| [(a:int)::l] -> (a:int) == x || is_element x [l];;
我确实收到了一个警告,但这个功能似乎不起作用

let rec is_element x lst = 
let rec aux y = function
  [] -> false
  | a::l -> a==y || aux y l
in
match lst with
  [] -> false
  | a::l -> aux x a || is_element x l;; 
可以使用辅助函数检查列表中是否包含元素,然后将此函数应用于列表列表中的元素。 然后您应该使用

is_element 4 list1;;
或者反转参数(x和lst)的顺序

可以使用辅助函数检查列表中是否包含元素,然后将此函数应用于列表列表中的元素。 然后您应该使用

is_element 4 list1;;
或者颠倒参数(x和lst)的顺序。

您可以使用检查元素是否是列表的一部分,并且可以使用 检查列表中的任何元素是否满足谓词。 将这两者结合起来,您可以检查列表列表是否包含您的元素。

您可以使用来检查元素是否是列表的一部分,并且您可以使用 检查列表中的任何元素是否满足谓词。
将这两者结合起来,您可以检查列表列表是否包含您的元素。

您的函数并没有涵盖所有要开始的情况。例如,不包括[]被传递给函数的情况。您的函数不包括要开始的所有情况。例如,不包括[]被传递给函数的情况。