如何从 Ocaml 的队列中删除重复的值(即重复值)?
例如,假设这是一个队列(尽管它以列表的形式呈现):
[1; 1; 2; 3; 4; 7; 7; 8; 8; 8]
然后,将此函数应用于队列后,我们将得到:
[1; 2; 3; 4; 7; 8]
列表情况下的实现:
let rec deleteDuplicate l =
match l with
| [] -> []
| x :: [] -> x :: []
| x :: y :: rest ->
if x = y then deleteDuplicate (y :: rest)
else x :: deleteDuplicate (y :: rest)