Lispで書ける Memorize関数(同じ引数で同じ関数を呼ばないように配列に結果を記憶しておくやつ)
を OCamlで書くことはできますか?
let rec fib = mem (fun n -> match n with 0 -> 0 | 1 -> 1 | _ -> (fib (n - 1)) + (fib (n - 2)));;
みたいな再帰定義ができないので無理なんでしょうか。
関数に外からアクセスされないstaticな配列を持たせられればいいんですけど。