我正在使用with sexp
语法自动生成s-exp函数。
问题是我用sexplib打印的数据结构有一些递归指针,打印最终会出现堆栈溢出。
所以我需要覆盖一个to_sexp函数并让它返回"(SomeRecursiveData)"
,我该怎么做?
注意:我的数据定义如下:
type somedata ...
and someotherdata ...
and this_is_problematic_recursive_data
and ....
with sexp
答案 0 :(得分:1)
我不能说我完全理解你的问题,但是如果函数to_sexp不是交叉递归的(即let rec to_sexp = ...
而不是let rec to_sexp = ..... and foo = .... calls to_sexp somewhere.....
)你可以尝试这个技巧:
module A = struct type t with sexp end
module B = struct
include A
let to_sexp = .... your code ...
end