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)的顺序。您可以使用检查元素是否是列表的一部分,并且可以使用
检查列表中的任何元素是否满足谓词。
将这两者结合起来,您可以检查列表列表是否包含您的元素。您可以使用来检查元素是否是列表的一部分,并且您可以使用
检查列表中的任何元素是否满足谓词。
将这两者结合起来,您可以检查列表列表是否包含您的元素。您的函数并没有涵盖所有要开始的情况。例如,不包括[]被传递给函数的情况。您的函数不包括要开始的所有情况。例如,不包括[]被传递给函数的情况。