落書きノート

ふと自分が気になった事を書いてます

OCamlで問題を解く

JavaRubyと並行しながらぼちぼちやってます。やっと再帰処理を使いました。while文の方が使いやすいと思っていたのですが、色々プログラムを作っていくうちに再帰処理でないと作るのが難しいと思ったからです。while文だと、ポインタ参照の機能が厄介です。ループの中で変数の内容を変更しないといけませんので。関数型プログラミングは基本的には変数の内容を変更しないという風潮があるようです。実際、OCamlを使ってるとそうならざるを得ないですね。言語仕様なのでしょうか。今少し、Haskellも気になってきました。後、Rustもですね。次の機会にぼちぼちやります。ああ、説明が抜けてましたけど、詳しく言うと、再帰処理でないと変数の扱いに困る…のような感じです。これで大体気になることは書けました。笑

let rec func () = print_string "3桁の正の整数値 : ";
                  let x = read_int() in
                  if x > 99 && x < 1000 then x
                  else func ();;
print_int(func ());;
print_newline();;