私は最近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' の右側の構文の使用に何らかの制限があることは明らかですが、私にはよくわかりません。誰かこれについてもう少し説明してもらえますか?