删除列表列表中的子集,例如:给定ls
的类型为int list list
,ls
的结果为result
函数:{{1} }
int list list -> int list list
<{1}}的结果是:ls: [[1;2;3;4];[1;2];[1;2;3];[0]]
我有:
ls
你能帮我弄清楚如何编写删除功能吗?
答案 0 :(得分:0)
您只需使用Int_Set.diff
。
答案 1 :(得分:0)
我已经用List数据结构做了一个例子,它给了我想要的结果。
以下是代码:
let map_filter l1 ls = List.map (List.filter (fun x -> List.mem x l1))ls
let result_filter ls =
match ls with
| [] -> []
| l1 :: ls' -> map_filter l1 ls'
let result ls =
let ls' = result_filter ls in
List.filter (fun l -> not (List.mem l ls')) ls