2014-01-26 159 views
1

所以我有个整数的这份名单中,让我们说这是检查一个元素是否等于OCaml中列表中的任何元素?

let a = [14, 22, 47] in 

而我想要做的是检查是否存在其他标识符等于列表中的任何元素。我显然可以这样做:

if (x = 14 || x = 22 || x = 47) then do something 

但这对于较大的列表来说似乎很麻烦。 OCaml中有更简单的方法吗?我知道Python有“in”运算符。

回答

3
$ 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 

(我建议通过列表模块中的功能列表中阅读。你要熟悉所有的人。)

0

您还可以创建一个功能如下:

let rec contains element = function a::c -> if (a = element) then true else (contains element c)
| [] -> false;;

相关问题