【发布时间】:2021-07-01 20:24:42
【问题描述】:
我是 Ocaml 的新手,我被分配仅使用 List 模块删除列表列表的所有重复项。这是我写的代码:
let sort_and_remove_duplicates l =
let sl = List.sort compare l in
let rec go l acc = match l with
| [] -> List.rev acc
| [x] -> List.rev (x::acc)
| (x1::x2::xs) ->
if x1 = x2
then go (x2::xs) acc
else go (x2::xs) (x1::acc)
in go sl []
这会通过空列表的情况,但对于其他情况则失败,例如:
[[3;1;3]; [4]; [1;2;3]]
我做错了什么?
【问题讨论】:
-
列表列表的重复是什么意思?
标签: list functional-programming duplicates ocaml