我正在尝试从OCaml中已排序的列表中删除重复的项目。这是我的代码:
let rec remove_dup = function
| [] -> []
| hd :: [] -> hd :: []
| hd :: hd2 :: tl -> if (hd == hd2) (remove_dup tl) :: hd else (remove_dup (h2 :: tl) :: hd;;
我收到语法错误。
答案 0 :(得分:3)
OCaml if
看起来像if
expr1 then
expr2 else
expr3 。您错过了关键字then
。
你也有不平衡的括号。看起来你最后需要一个右括号。
完成这些修复后,您应该看到一些类型错误。
作为旁注,不要使用==
来测试平等性。它是高级用途的特殊用途运营商。日常等式运算符为=
。