無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

OCamlをつつく13−for文。お勧めしないけど繰り返せるピヨ。

お久しぶり♪今日はOCamlしたくなったからつつくピヨ♪えっと、OCamlでつついていない基本は・・・そうだfor文をまだ紹介していなかったね。ということで、関数型言語のスタイルではあまりお勧めできない繰り返し文をつつくピヨ。


for i = 1 to 10 do print_string "Piyo " done;;


このサンプルプログラムを実行すると10回ピヨと言うピヨ♪OCamlはシンプルだねー。OCamlのfor文は次の様に定義されているんだ。


for 変数名 = int型の式 ( to もしくは downto ) int型の式 do done

分かってもらえると思うけど、こんな風に書いている部分は任意の項目ピヨ。この定義をみたら色々なOCamlらしさがあるピヨ。1つ目にint型に固定されているのが気になるよね?じゃあ、試しに変数の値をflot型にしてみるピヨッ♪


for i = 1.0 to 10.0 do print_string "Piyo " done;;


実行してみて。やっぱりシンタックスエラーが出るピヨ。やっぱりint型でないと駄目なんだね。
次に気になるのは、toとdowntoの違いピヨ。試しに二つのサンプルをつついてみたピヨ。


for i = 1 to 10 do
  print_int i;
  print_string " "
  done;;

for i = 10 downto 1 do
  print_int i;
  print_string " "
  done;;


これでバッチリだよね♪が複数行の時;をつける事に注意が必要ピヨ。
おっと忘れるところだった。それ以外にもう一つ分かり難い落とし穴があるピヨ。それは・・・


for i = 1 to 10 do
  i > 10
  done;;


このサンプルを実行してごらん。シンタックスエラーでuntilとか何とか言われたよね?これは、for文の式はunit型を返す式以外は禁止されているからなんだ。これはつまり、unitというのは戻り値が何もない事をあらわしているから、for文の中で値を返しちゃ駄目!という事なんだ。OCamlのfor文は制約が多いピヨォ。でもこれは弱点とかじゃなくて、関数型言語のプログラミングは繰り返し文はあまり使わないからその様に設計したとボクは思う。
この様にfor文は使いにくいから、OCamlでは他のプログラミング言語で馴れたスタイルから関数型を使用するスタイルに切り替えよう♪OCamlは上手い事出来ているね♪
別窓 | OCaml | コメント:2 | トラックバック:0 | ∧top | under∨
<<ネタつつき33ー胸を張れ!初心者は立派な情報供給源 | 無差別に技術をついばむ鳥 | 書籍をつつく96−SQL Server 2008 ビギナーズガイド。かなり使える定番書。>>

この記事のコメント

このコメントは管理人のみ閲覧できます
2009-03-30 Mon 19:54 | | #[ 内容変更]
了解♪初心者用の記事沢山書くよ。
プログラミングが上手くなるコツはやっぱり愛する事だよ。
好きになれば成る程、「心が脳を変化させる」んだ。
リラックスして。好きなアニメのストーリーを覚えるような調子で行けば上手くいくよ。
2009-03-31 Tue 08:35 | URL | インドリ #-[ 内容変更]
∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |