オブジェクトのメソッドのコンテキストで OCaml の再帰を理解しようとしています。次のコードを試しましたが、コンパイルできないようです。
class foo =
object (self)
method loopTest =
let rec doIt x =
Printf.printf "%d\n" x;
if x>1 then doIt (x+1)
end;;
メソッド内でこの種の再帰関数を作成するにはどうすればよいですか?
改訂されたコード:
class foo =
object (self)
method loopTest =
let rec doIt x =
Printf.printf "%d\n" x;
if x<10 then doIt (x+1) in doIt 0
end;;