방금 Ocaml을 배우기 시작했으며 재귀 함수로 놀고 있습니다. Ocaml 컴파일러는 "if h1 = h2 then helper t1 t2"라는 헬퍼를 재귀 적으로 호출하면 오류가 발생한다고 알려줍니다.이 표현식에는 'list *'bool 유형이 있지만 bool 유형이 필요합니다. 나는 그것이 컴파일러가 boolean을 기다리고 있지만 boolean을 반환하는 함수를 얻는다는 것을 알려주고있는 것을 이해한다. 그러나 나는 이것을 어떻게 고칠 수 있을지 전혀 모른다. tmp
, l1
, 및 패턴 일치에 사용되는 익명의 인수 : 어떤 도움이 귀하의 정의 let rec helper tmp l1 = function ...
가 세 인자를받는 함수 helper
정의Ocaml :이 표현식에는 'a list *'list -> bool 유형이 있지만 bool 유형의 표현식이 필요합니다.
let rec a_func l =
let rec helper tmp l1 = function
| [], [] -> true
| _, [] -> false
| h1::t1, h2::t2 -> if h1=h2 then helper t1 t2 else helper [h2]@l1 t2
in helper [] l
설명해 주셔서 감사합니다. – user1848861