OCaml List.mem搜索成对列表中的元素

OCaml List.mem搜索成对列表中的元素,ocaml,Ocaml,我有一个问题: let list = [(1,2);(2,3);(1,4);(5,0)];; List.mem (1,2) list;; - : bool = true 但是我需要修改这个函数,使其在列表的一个元素对与“find参数”匹配时具有“True/False” List.mem (1,_) list;; - : bool = true 或 您可以使用List.exists,它接受谓词函数并返回true或false列表元素是否匹配: # let list = [(1,2);(2,3

我有一个问题:

let list  = [(1,2);(2,3);(1,4);(5,0)];;
List.mem (1,2) list;;
- : bool = true
但是我需要修改这个函数,使其在列表的一个元素对与“find参数”匹配时具有“True/False”

List.mem (1,_) list;;
- : bool = true


您可以使用
List.exists
,它接受谓词函数并返回
true
false
列表元素是否匹配:

# let list  = [(1,2);(2,3);(1,4);(5,0)];;
val list : (int * int) list = [(1, 2); (2, 3); (1, 4); (5, 0)]
(* you'll probably want to find a better name *)
# let exists_left list value = List.exists (fun (x, _) -> x = value) list;;
val exists_left : ('a * 'b) list -> 'a -> bool = <fun>
# exists_left list 1;;
- : bool = true
# exists_left list 100;;
- : bool = false
#let list=[(1,2);(2,3);(1,4);(5,0)];;
val list:(int*int)list=[(1,2);(2,3);(1,4);(5,0)]
(*您可能想找到一个更好的名字*)
#让exists_left list value=list.exists(fun(x,)->x=value)list;;
val存在左:('a*'b)列表->a->bool=
#存在左列表1;;
-:bool=true
#存在左列表100;;
-:bool=false

列表。mem\u assoc
是您想要的功能。

的可能重复项
# let list  = [(1,2);(2,3);(1,4);(5,0)];;
val list : (int * int) list = [(1, 2); (2, 3); (1, 4); (5, 0)]
(* you'll probably want to find a better name *)
# let exists_left list value = List.exists (fun (x, _) -> x = value) list;;
val exists_left : ('a * 'b) list -> 'a -> bool = <fun>
# exists_left list 1;;
- : bool = true
# exists_left list 100;;
- : bool = false