4
나는 자동으로 s-exp 함수를 생성하기 위해 with sexp
구문을 사용하고 있습니다.OCaml sexplib, 사용자 정의 to_sexplib 함수를 정의하는 방법?
문제는 내가 sexplib과 함께 인쇄 해요 일부 재귀 포인터가 있고 스택 오버플로가 끝날 것입니다.
그래서 to_sexp 함수를 재정의하고 "(SomeRecursiveData)"
을 반환해야합니다. 어떻게해야합니까?
참고 : 내 데이터 정의 양식에 있습니다
type somedata ...
and someotherdata ...
and this_is_problematic_recursive_data
and ....
with sexp
'this_is_problematic_recursive_data'는 다른 유형과 같은 정의에 정말로 필요합니까, 아니면 이전에 정의 할 수 있습니까? 그 아이디어는't' 형 모듈'Foo'와 같은 모듈에 정의 된'to_exp' 모듈로 정의하는 것입니다. 가능하지 않은 경우 재귀 모듈을 사용해야합니다. –
@FabriceLeFessant OCaml에서 새로 나온 솔루션을 이해할 수 없지만 모듈이 도움이된다고 생각하지 않습니다. 내 문제는 내가 refs의 목록을 가지고 있고 refs 중 하나가 런타임의 어떤 시점에서 목록 자체를 가리킨다는 것이다. 이를 방지하기 위해 해당 데이터 유형 (refs 목록이있는 데이터 유형)을 to_sexp로 대체하려고합니다. – sinan