我的 Ocaml 项目中有一个帮助功能,可以帮助将一个列表附加到另一个没有重复元素的列表。例如,追加list x: [d, e, f, g]
到list y [a, b, c, d]
,结果应该是 [a, b, c, d, e, f, g]
我写的函数是这样的:
(* helper function checks if list contains element *)
let rec find e l =
match l with
[] -> false
|(h::t) -> if (h = e) then true else find e t
;;
(* helper function append l1 to l2 without duplicate *)
let rec help_append_list l1 l2 =
match l1 with
[] -> l2
|(h::t) -> if (find h l2 = false) then (help_append_list t ([h]@l2)) else (help_append_list t l2)
;;
但是当我使用它时,这看起来不太好用,结果还是出现了重复的元素。
请看看上面的功能,给我一些关于如何纠正它们的建议......
谢谢你=)