这些天我正在学习 OCaml 并遇到了这个问题:
OCaml 对它可以放在 let rec 右侧的内容有限制。像这个
let memo_rec f_norec =
let rec f = memoize (fun x -> f_norec f x) in
f;;
Error: This kind of expression is not allowed as right-hand side of `let rec'
其中,memoize 是一个函数,它接受一个函数并将其转换为带有 Hashtable 的记忆版本。很明显,OCaml 对“let rec”右侧结构的使用有一些限制,但我真的不明白,有人能解释一下吗?