2017-11-13 18 views
0

OCaml에서 이미 정렬 된 목록에서 중복 항목을 제거하려고합니다. 이것은 내 코드입니다.정렬 목록 (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

또 다른 의견 :'hd :: []'은 가독성을 높이기 위해'[hd]'라고 쓸 수 있습니다. :) – RichouHunter

답변

3

OCaml의 ifthen expr1을 if 같은 expr2이elseexpr3를 보인다. 키워드 then이 누락되었습니다.

불균형 괄호도 있습니다. 맨 마지막에 오른쪽 괄호가 필요합니다.

이 수정 사항을 살펴보면 몇 가지 유형 오류가 발생합니다.

측면 설명으로 ==을 사용하여 동일성을 테스트하지 마십시오. 고급 사용을위한 특수 목적 연산자입니다. 일일 평등 연산자는 =입니다.