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)