OCamlをつつく1-四則演算。電子計算機の基本はやっぱ計算だね。
1 + 1;;
おや?と思った命令型言語の使い手達も多いと思うけど、OCamlはエントリポイントが基本的には無いんだ。おそらく内部ではあるだろうけど、C言語みたいに自分でmain関数を定義する必要が無いからちょっとした計算には便利だね。
次に気になるのが;;ピヨ。 これは見慣れない表現だと思うけど、 なんてことは無いただの行末文字ピヨ。 じゃあ、どんどん計算していこう。OCamlは計算機代わりに使えるね♪
1 - 1;;
2 * 2;;
1 / 4;;
おや?結果が0になったぞ。あっそうか!浮動小数型じゃないからかな。
1.0 / 4.0;;
This expression has type float but is here used with type int
吃驚した。エラーが出たよ。えっと・・・こうすればいいらしい。
1.0 /. 4.0;;
よし成功したピヨ。これで一つわかったよ。OCamlは 強い型指向の言語 なんだね。四則演算から実験するのは馬鹿みたいだけど結構違いがあるんだよね。 ボクは早速OCamlらしさを感じたよ。Lisp経験者のボクが気になったのは、 括弧が無い点と、 演算子が中間記法を採用している点ピヨ。 括弧は別に今の所気にならないけど、中間記法はちょっと残念だね。 おっと、御免一人歩きしているね。
プログラム言語の演算子の記法は前置記法というのがあるんだ。Lispはこの記法を採用しており、計算式は( + 1 2 )とか書くんだ。一見変に見えるけど、実は効率的な書き方なんでボクは結構気に入っていたんだ。 だって、計算式が長い場合前置記法の方が簡潔だし、コンパイラの実装が楽だもん。
例えば、( 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 )を計算すると、 中間記法はこのように+記号が8個もいる。一方前置記法だと、 (+ 1 2 3 4 5 6 7 8 9)となり1回だからタイプの効率がいいんだ。 勿論、これでOCamlの価値が減るわけじゃないけど、個人的にはちょっと残念だなー。