【发布时间】:2015-01-26 04:41:27
【问题描述】:
我需要修改一个 OCaml 函数:
let removeDuplicates l =
let rec helper (seen,rest) =
match rest with
[] -> seen
| h::t ->
let seen' = failwith "to be written" in
let rest' = failwith "to be written" in
helper (seen',rest')
in
List.rev (helper ([],l));;
该函数需要获取一个列表 l 并返回删除了所有重复项的列表。 failwith "to be written" 部分是我应该编写代码的地方。我了解辅助函数的工作原理,但无法理解这部分辅助函数(seen',rest')。我不确定该功能应该如何与这部分一起流动,或者当您将一堆in 包含在一起时它是如何工作的。我们可以使用 List.rev 来反转列表,list.mem 如果某个元素在列表中则返回 true。有人可以向我解释一下函数的流程应该如何工作,以便我可以开始编写解决方案。
【问题讨论】:
标签: ocaml