listocaml

Checking if one element is equal to any element in a list in OCaml?


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.


Solution

  • $ 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.)