Checking if one element is equal to any element in a list in OCaml?
16,558
Solution 1
$ ocaml
OCaml version 4.01.0
# List.mem;;
- : 'a -> 'a list -> bool = <fun>
# List.mem 3 [1;2;3];;
- : bool = true
# List.mem 8 [1;2;3];;
- : bool = false
(I'd suggest reading through the list of functions in the List module. You want to be familiar with all of them.)
Solution 2
List.mem
is what you are looking for.
Solution 3
You can also create a function as follows:
let rec contains element = function a::c -> if (a = element) then true else (contains element c)
| [] -> false;;
Author by
sebster
Updated on June 07, 2022Comments
-
sebster almost 2 years
So what I have this list of ints, let's say it is
let a = [14, 22, 47] in
And what I want to do is check if some other identifier is equal to ANY of the elements in the list. I could obviously do:
if (x = 14 || x = 22 || x = 47) then do something
but this seems cumbersome for bigger lists. Is there an easier way in OCaml? I know Python has the "in" operator.