所以我有個整數的這份名單中,讓我們說這是檢查一個元素是否等於OCaml中列表中的任何元素?
let a = [14, 22, 47] in
而我想要做的是檢查是否存在其他標識符等於列表中的任何元素。我顯然可以這樣做:
if (x = 14 || x = 22 || x = 47) then do something
但這對於較大的列表來說似乎很麻煩。 OCaml中有更簡單的方法嗎?我知道Python有「in」運算符。
所以我有個整數的這份名單中,讓我們說這是檢查一個元素是否等於OCaml中列表中的任何元素?
let a = [14, 22, 47] in
而我想要做的是檢查是否存在其他標識符等於列表中的任何元素。我顯然可以這樣做:
if (x = 14 || x = 22 || x = 47) then do something
但這對於較大的列表來說似乎很麻煩。 OCaml中有更簡單的方法嗎?我知道Python有「in」運算符。
$ 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
(我建議通過列表模塊中的功能列表中閱讀。你要熟悉所有的人。)
List.mem
是你在找什麼。
您還可以創建一個功能如下:
let rec contains element = function a::c -> if (a = element) then true else (contains element c)
| [] -> false;;