库函数找到两个列表之间的差异 - OCaml

Col*_*lin 3 ocaml

有库函数可以找到List1 minus elements that appear in List2吗?我一直在谷歌搜索,并没有找到太多.

自己写它似乎并不是微不足道.我编写了一个从列表中删除特定元素的函数,但这更简单:

let rec difference l arg = match l with
| [] -> []
| x :: xs -> 
    if (x = arg) then difference xs arg
    else x :: difference xs arg;;
Run Code Online (Sandbox Code Playgroud)

Jac*_*ale 8

这会吗?

let diff l1 l2 = List.filter (fun x -> not (List.mem x l2)) l1
Run Code Online (Sandbox Code Playgroud)