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

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

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の価値が減るわけじゃないけど、個人的にはちょっと残念だなー。
別窓 | OCaml | コメント:4 | トラックバック:0 | ∧top | under∨
<<OCamlをつつく2ー基本型。OCamlは何で出来ているのかな♪ | 無差別に技術をついばむ鳥 | F#をつつく0−ずっと狙っていた獲物。>>

この記事のコメント

括弧が無いのは面白いですね。

Lispは激しく前置記法だと思うのですが・・・。
2008-07-23 Wed 18:51 | URL | だいら #-[ 内容変更]
あれ?
恥ずかしい間違いをしてしまった。
すぐに直します。
2008-07-23 Wed 20:41 | URL | インドリ #-[ 内容変更]
だいら有難う助かりました。
こんな記憶違いしているなんて、こりゃLispも復習しなくちゃ駄目ですね。
2008-07-23 Wed 20:52 | URL | インドリ #-[ 内容変更]
ごめん「さん」が抜けていました。
今日は頭の調子が悪いみたいですorz
2008-07-23 Wed 20:54 | URL | インドリ #-[ 内容変更]
∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

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

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