char 목록에서 트리에 분기를 추가하는 매우 간단한 재귀 함수가 있습니다.정의 대신 재귀 함수의 값을 전달하는 방법
type tree = Node of bool ref * (char * tree) list ref
let rec create_branch lc = function
[] -> Node(ref true, ref[])
| x :: l -> Node(ref false, ref [(x, (create_branch l))])
나는이 사실이 될 것이다 마지막 노드까지 문자 전환과 "거짓"노드의 무리를했을 하나의 분기를 포함하는 트리를 만들 것으로 기대한다.
오류 :
하지만 오류지고있어이 표현은 입력이 (숯불 * (문자 목록을 -> 트리)) 목록 심판 하지만식이 유형의 예상 (숯불 * 트리) 목록 심판 유형 char list -> tree가 type tree와 호환되지 않습니다.
제 생각에는이 재귀 호출이 어떤 이유로 실제 함수에 대한 참조로 전달 된 것 같습니다 (따라서 char list -> tree))를 반환합니다. 반환 값은 단순히 트리입니다.
내가 뭘 잘못하고 있는지 알고 싶습니다.
적어도 제대로 작동했거나 문제가 해결되었습니다. 실제 코드 작업을 수행하는 것은 여전히 많은 작업이 될 것이지만 많은 도움이 될 것입니다. 고맙습니다. OCaml은 꽤 이상합니다. –